gpt4 book ai didi

javascript - XMLHttpRequest 事件监听器的执行顺序

转载 作者:行者123 更新时间:2023-11-30 16:42:38 26 4
gpt4 key购买 nike

我有代码使用 XMLHttpRequest 检索一些数据,看起来像这样:

var myObject = new MyObject();
var req = new XMLHttpRequest();

req.addEventListener("load", function () {
myObject.data = req.responseText;
}, false);

req.addEventListener("loadend", function () {
myObject.save();
}, false);

req.open("GET", "http://www.example.com/foo.txt", true);
req.send(null);

基本上,如果Ajax请求成功,我想将检索到的数据保存在myObject中,然后不管Ajax请求的状态如何,我都想保存myObject > 到数据库。到目前为止,它已按预期运行,但我对 loadloadend 监听器的执行顺序感到有些不安。我能找到的最多来自 XMLHttpRequest living standard (关于loadend):

After one of error, abort, timeout or load has been dispatched.

这是否保证如果 Ajax 请求成功,load 监听器将在 loadend 监听器开始<之前完成执行/strong>?

最佳答案

order of execution of the load and loadend listeners

the standard可以判断, loadend 将始终在 load 或相应的错误事件之后调度。

Does this guarantee that if the Ajax request succeeds, that the load listener will finish executing before the loadend listener starts?

JavaScript 是单线程的,具有从运行到完成的事件循环。两个监听器永远不会同时运行。

关于javascript - XMLHttpRequest 事件监听器的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31708794/

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