2

我正在重新观看来自 WWDC12 的关于 HTML5 高级效果的视频,并注意到他们使用的演示req.addEventListener("load",callback,true)而不是通常的onreadystatechange.

state=4 status=200加载事件和情况有什么区别?
是触发相同的加载事件还是两个不同的加载事件?

4

1 回答 1

0

load事件仅表明请求是网络成功,不一定是 HTTP 成功。始终触发load事件或error事件的 Ajax 请求,指示网络事务的成功或失败(作为进度事件规范的一部分):

  • error当由于服务器关闭或在不可访问的域上(即请求被同源策略阻止)而导致网络获取失败时触发该事件。

  • 否则,load无论返回的 HTTP 代码如何,都会触发。

loador事件总是在最后一个事件触发error后最后readstatechange触发,因此您可以确定loadorerror回调正在运行xhr.readyState == 4xhr.status设置为正确的 HTTP 响应代码。

于 2012-11-13T18:25:57.150 回答