我正在使用John Culviner的(很棒的)jquery.fileDownload插件。它具有下载完成时的回调,但我的文件需要大约30秒才能生成(大量后端处理)。jquery.fileDownload:通知用户进度
我想告诉用户当前的进度。
为原型,我想这一点:
1)(文件下载开始前) - 反复查询的URL每秒($获得(...))。它返回完成%并更新页面上的div(此时为0%)。
2)启动fileDownload脚本(此时,正在检查的服务器端变量1)开始更新,例如,完成2%....完成10%....等
3)理想情况下,虽然文件正在构建,我在1)的ajax调用仍然同时轮询(和更新div),以便用户开始看到一些进展。
4)下载完成。我可以隐藏'进度div',因为它会显示100%。
注意进度div最终会被进度条取代。
问题是,一旦fileDownload开始,1)中的ajax调用开始排队,直到4)之后才实际执行!
我认为fileDownload插件使用一个iframe,我不会想到会阻止我的主页中的ajax调用,但似乎。
希望是有道理的。感谢有关如何处理这个问题的任何建议。
我遇到了与此组件和ASP.NET MVC5相同的问题。我用包含SessionStateAttribute的“进度”动作对控制器进行了装饰,但对进度动作的调用仍然阻止,直到文件下载完成。我是否需要用相同的属性来装饰两个控制器?这可能很艰难。 – 2014-01-30 03:07:39