gpt4 book ai didi

javascript - 当做一些 ajax 的事情时,这个匿名回调函数什么时候运行?

转载 作者:行者123 更新时间:2023-11-30 07:05:47 24 4
gpt4 key购买 nike

我刚开始学习 ajax,我无法理解示例中使用的匿名回调函数的概念。

function getData(dataSource, divID) 
{
if(XMLHttpRequestObject) {
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", dataSource);

XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}

XMLHttpRequestObject.send(null);
}
}

此处匿名函数什么时候触发? javascript 会逐行读取吗?

最佳答案

在您的代码中,您是:

  1. 构建请求对象
  2. 您为该对象分配一个回调
  3. 您发送请求

您分配给 XMLHttpRequestObject.onreadystatechange 的功能是将执行一次的匿名函数的示例 readyState变化。做一个粗略的比较,就像添加一个 onchange<select> - 当值改变时,执行指定的匿名函数

匿名函数非常重要,其中一个函数使用它来定义一组“待办事项”,基本上是将“待办事项”列表交给另一个操作。然后该操作将在需要时执行它,在本例中为 onreadystatechange .

您的代码也是“异步操作”的示例。代码从上到下运行。回调只是“分配”,因此不会执行。一旦您发送请求,此时不会等待响应。它就像一个后台操作,而其余的代码在它被执行之后。

一旦值readyState更改,您刚刚分配给 XMLHttpRequestObject.onreadystatechange 的功能被执行。条件

XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200

在该函数中确定请求是否完成 (4) 以及页面是否正常 (200)。如果是这样,响应就可以使用了。

关于javascript - 当做一些 ajax 的事情时,这个匿名回调函数什么时候运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276481/

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