【问题标题】:Difference between onreadystatechange and onloadonreadystatechange 和 onload 的区别
【发布时间】:2020-06-27 01:30:23
【问题描述】:

我测试了两种做XHR

1.

xhr.onreadystatechange = function() {

            if (this.readyState == 4 && xhr.status !== 500) {

                function getElementByXpath(path) {

2.

xhr.onload= function() {

                function getElementByXpath(path) {

并没有意识到任何区别。有人可以指出我吗?还是真的没有人?

【问题讨论】:

标签: javascript xmlhttprequest


【解决方案1】:

每次readyState 更改(多次)时都会触发readystatechange 事件。

load 事件仅在请求成功完成时触发。

在您的示例中,您向 readystatechange 处理程序添加了一些额外的测试,以测试它是否已达到最终状态(4(除非存在某些类型的错误,在这种情况下它将是 0))和以确保它不是 500 错误。还有其他错误不会触发load 事件。

【讨论】:

  • 是不是说xhr.onLoad的结果总是data,而readystatechange的结果可能是data、undefined和0?
  • 没有。您将readyStateresponseText 混淆了。
猜你喜欢
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多