gpt4 book ai didi

javascript - 初学者 AJAX 类(class) - 为什么我必须将 request.readyState 包装在一个函数中?

转载 作者:行者123 更新时间:2023-11-30 17:50:41 25 4
gpt4 key购买 nike

这是我在 Lynda.com ajax 类(class)中的一些代码。

var request = new XMLHttpRequest();

request.open('GET', 'data.txt');
request.onreadystatechange = function()
{
if (request.readyState===4)
{
console.log(request);
document.writeln(request.responseText);
}
}
request.send();

在上一课中我们检查了request.status 的值,它没有被包裹在一个函数中,并且它工作正常。但是现在,没有任何解释,request.readyState 检查必须包含在您在上面看到的函数中,否则它将无法工作。这是怎么回事?

最佳答案

您分配给 onreadystatechange 的函数是一个事件处理程序。您在调用 send() 之前分配它,这样您就不会错过请求引发事件的时间。如果您没有检查事件处理程序中的 request.readyState,您怎么知道请求状态何时实际发生了变化? send() 方法默认是非阻塞的。

另一种方法是通过在某个任意时间间隔进行轮询来检查 readyState,这绝对不是我们想要的。

就像上面评论者建议的那样,MDN医生很好。

关于javascript - 初学者 AJAX 类(class) - 为什么我必须将 request.readyState 包装在一个函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19107308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com