gpt4 book ai didi

javascript - 同步 AJAX 调用不是真正同步的

转载 作者:行者123 更新时间:2023-11-29 17:25:02 24 4
gpt4 key购买 nike

我在处理同步 AJAX 请求时遇到问题。

我正在创建一个 Web 应用程序,其中有许多按顺序调用的 AJAX 请求,这些请求应按严格的顺序返回。我决定简单地同步调用它们,而不是将每个后续请求都放在最后一个请求的 readystatechange 事件处理程序中。

但是,在以下代码中,在将响应添加到 DOM 之前调用了 alert()。

window.addEventListener("load", main, false);

function main (e) {

// Sending synchronous request
var request = new XMLHttpRequest();
request.open("GET", fileName, false);
request.overrideMimeType("text/xml");
request.send(null);

// Receiving response
var response = request.responseXML;

// Changing XML Tree to corresponding XHTML Tree
response = XMLtoXHTML(response);

//Adding response to the body
document.body.appendChild(response);

// Calling alert
alert("Hello World");

}

响应实际上已成功添加到 DOM,但仅在单击警报消息上的“确定”之后。当我使用 Safari 的脚本调试功能进行演练时,响应确实在调用 alert() 之前被添加到 DOM。

有什么建议吗?

注意:我遗漏了其他请求。

最佳答案

我想它确实被添加了,你只是在 JS 将控制权返回给浏览器之前看不到变化,即直到警告窗口关闭。如果您不能执行异步请求(我首先建议这样做),您至少可以在单独的 setTimeouted“线程”中进行 dom 更改。

关于javascript - 同步 AJAX 调用不是真正同步的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608126/

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