首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于文件生成的throbber

用于文件生成的throbber
EN

Stack Overflow用户
提问于 2011-01-18 08:41:28
回答 1查看 371关注 0票数 2

环境: IIS7 / IE / ASP.Net MVC / jQuery

场景:当用户点击网页中的提交按钮时,服务器会动态生成一个excel文件,然后将文件流发送回客户端浏览器,用户将看到文件打开/保存对话框。但页面保持不变。

为了在用户等待文件生成的同时增加抖动,我必须使用ajax提交请求,否则就没有办法(或者我没有找到任何方法)知道文件生成何时完成,并反过来隐藏这种抖动。

但是ajax不能接收文件流(或者可以吗?),所以我必须在ajax回调中提交另一个请求来获取实际的文件,在那里我可以首先隐藏跳动。

然而,由于获取文件的最终请求是由代码自动完成的(而不是用户点击),用户将看到阻止文件下载的黄色信息栏,这在IE中是一个非常愚蠢的功能,因为在用户右键单击黄色栏并允许下载后,他们必须再次生成文件!

你知道怎么做到这一点吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-01-18 15:43:30

这里有一个建议:

  1. 启动一个ajax调用,该调用创建包含excel文件的内存流。将excel文件的内存流放入缓存中(过期时间较短)。如果ajax调用在网页上返回一个"done“字符串
  2. ,您是否感到兴奋(我猜您指的是旋转等待动画?)执行动画,直到它从ajax调用中得到"done“字符串,然后它将触发另一个ajax调用来获取excel文件。由于excel文件已经在内存中,因此此调用速度会快得多,并且您不需要旋转动画图标。

请注意,在第1步中,您应该保持较短的过期时间,否则大量生成文件的人可能会很快填满您的内存。你也可以写磁盘,但是你需要一些清理方法,这可能会变得很棘手。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4719441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档