onreadystatechange 和 onload 的区别

Evg*_*niy 5 javascript xmlhttprequest

我测试了两种做法XHR

1.

xhr.onreadystatechange = function() {

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

                function getElementByXpath(path) {
Run Code Online (Sandbox Code Playgroud)

2.

xhr.onload= function() {

                function getElementByXpath(path) {
Run Code Online (Sandbox Code Playgroud)

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

Que*_*tin 6

readystatechange每次readyState发生变化(多次)时都会触发一个事件。

load仅当请求成功完成时才会触发事件。

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

  • 不,您混淆了“readyState”和“responseText”。 (2认同)