我一直在使用valums文件上传器:https://github.com/valums/file-uploader
我遇到的一个问题是它从未真正达到100%onProgress。
文件上传完成后,xhr.upload.onprogress不再被触发。 我得到的下一个ping是readyState 4的完成。
这是因为一旦100%发生,在请求完成之前我的服务器上就有处理。因此,用户确实看到了98%的内容,然后是完成请求的“挂起”,然后是100%后的“完成”状态。
readyState 2是:
READYSTATE_LOADED(2)已调用send方法。没有数据 可用。
此时在UI中启动处理状态是否可靠?
注意我很好奇是否可以在IE中使用,虽然上传者在IE中做了正常的帖子,所以我们从来没有进度条。
答案 0 :(得分:0)
来自Quirksmode:
资源管理器有一个观点,因为
load
事件可以被视为一个readystatechange
事件的子集。页面出现时load
会触发 完全加载,这相当于说readyState
是4:完成。...
[但是,E] xplorer不支持
load
上的xmlhttprequest
事件。我们 已经知道这一点,但我们应该意识到它甚至不允许你这样做 设置事件处理程序,因为它只允许非常有限的一组xmlhttp
对象上的属性。Opera中仍然缺少
event
对象,但不在Mozilla中。
http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_r_2.html