跨浏览器是READYSTATE_LOADED吗?

时间:2012-07-15 20:18:04

标签: javascript ajax

我一直在使用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中做了正常的帖子,所以我们从来没有进度条。

1 个答案:

答案 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