gpt4 book ai didi

javascript - jQuery/AJAX并发访问全局变量

转载 作者:行者123 更新时间:2023-11-29 10:43:03 25 4
gpt4 key购买 nike

我正在编写一些执行普通 ajax 调用的 jQuery 代码。我有一个全局 Javascript 变量,我需要在每次调用时增加线程安全。如果这是 Java,我会使用 synchronized 但事实并非如此 :-)

这是一个代码片段:

var myval;

function myFunc()
{
$.ajax({
url: myurl,
type: 'GET',
data: { ...my data... },
success: function()
{
myval++;
}
});
}

鉴于 myFunc() 与点击事件相关联,我如何确保 myvar 始终安全/一致地增加?我知道我可以也许使用async: false,但我宁愿避免它。我什至不确定它会那样工作。

感谢您的帮助!

最佳答案

没问题 - JS 不会遇到原子性问题,因为没有(用户可见的)线程[*]

除了响应事件或初始脚本加载外,JS 中没有任何事情发生。一段代码不可能在增量期间误读 myval,因为整个 success 回调必须在任何其他事件处理代码开始之前完成。

[*] 是的,有 WebWorker,但它们使用消息传递而不是变量共享。

关于javascript - jQuery/AJAX并发访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077844/

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