2008-12-30 119 views
25

我想获取我的AJAX请求的进度 - 到目前为止已经下载了多少文件。例如,我正在使用AJAX下载大图片,这样我就可以将内容放入DATA网址中(这可能不是最好的方法,这仅仅是一个例子。)AJAX页面下载进度

因此,我提出了AJAX请求对某些主机,我无法控制(flickr),并将进度报告给用户。如果没有服务器端脚本或类似的东西,我找不到一种方法。最好解决方案将使用JQuery,因为这是我用于我的网站。 谢谢! Isaac

+0

*不是*显示图片下载进度的最佳方式,所以这将有助于知道你**实际**想要做什么.... – 2008-12-30 13:54:35

+1

This [stackoverflow线程] [1]讨论了同样的问题。 [1]:http://stackoverflow.com/questions/76976/how-to-get-progress-from-xmlhttprequest – 2010-07-29 08:04:57

回答

13

据我所知,$ .ajax()函数不支持“字节加载”。它只有开始和完整的事件,没有进度事件。

我发现this thread详细描述了一个尝试,但显然这个代码在几个浏览器中工作,但不是IE。他们提出的建议是在其他浏览器中显示进度,并为IE提供简单的“加载...”消息。

请注意,在同一个网站上有几个类似的讨论,所以浏览左侧面板的其他方法。

2

一些浏览器为下载状态事件提供支持,您可以跟踪您的进度(我知道ff 3.5+)。

这是由ajax XHR完成的。

你可以阅读更多herehere

也有可能分裂出一个文件中的数组(比方说,我们在10个分吧),

现在发送1peace,并返回更迭后,进度= 10%等...