gpt4 book ai didi

javascript - 同步:onerror事件和n++

转载 作者:行者123 更新时间:2023-11-30 23:45:43 25 4
gpt4 key购买 nike

我刚刚读了一点 JavaScript,并发现了一些处理加载图像过程的代码:

var n = 0;
...
for (...) {
...
image[i].onload = function { n++; };
}

这段代码安全吗?或者在访问变量n时是否可能存在任何类型的竞争?

最佳答案

每个图像的 ONLOAD 事件发生的时间(相对于彼此,如果有的话)通常是不确定的。考虑浏览器缓存或并发下载或失败尝试等问题。

但是,一次只有一个 JavaScript“执行上下文”;也就是说,n 的最终值将反射(reflect)调用 ONLOAD 处理程序的总次数(在给定时间)。也就是说,对于给定的页面,所有 JS 都是原子的,直到完成(屈服于浏览器直到事件发生)

“Web Workers”也适合此事件模型;线程和变量访问之间不存在传统的“竞争条件”。然而,任务之间的任何共享(可变)状态都可能导致竞争条件,尽管是在更高级别。

关于javascript - 同步:onerror事件和n++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077257/

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