我正在重新观看来自 WWDC12 的关于 HTML5 高级效果的视频,并注意到他们使用的演示req.addEventListener("load",callback,true)
而不是通常的onreadystatechange
.
state=4 status=200
加载事件和情况有什么区别?
是触发相同的加载事件还是两个不同的加载事件?
我正在重新观看来自 WWDC12 的关于 HTML5 高级效果的视频,并注意到他们使用的演示req.addEventListener("load",callback,true)
而不是通常的onreadystatechange
.
state=4 status=200
加载事件和情况有什么区别?
是触发相同的加载事件还是两个不同的加载事件?
该load
事件仅表明请求是网络成功,不一定是 HTTP 成功。始终触发load
事件或error
事件的 Ajax 请求,指示网络事务的成功或失败(作为进度事件规范的一部分):
error
当由于服务器关闭或在不可访问的域上(即请求被同源策略阻止)而导致网络获取失败时触发该事件。
否则,load
无论返回的 HTTP 代码如何,都会触发。
load
or事件总是在最后一个事件触发error
后最后readstatechange
触发,因此您可以确定load
orerror
回调正在运行xhr.readyState == 4
并xhr.status
设置为正确的 HTTP 响应代码。