我有一个简单的可调整大小的div(用jQuery's resizable实现),我正在使用函数处理resize事件。
所以,让我们说这是我的代码:
var a = ...
$(div).resizable({
options go here...
resize: function(e, ui){
make some operations with a
...
...
keep making operations with a
...
...
ok, we're done
}
})
现在,假设调整大小的回调在很短的时间内被调用很多次。 javascript将如何处理?回调会重叠使用“a”吗? (注意“a”是全局var!)。 我对此代码是否安全,或者可能存在某种冲突?
此致
答案 0 :(得分:2)
如果您询问线程安全性,JavaScript是单线程的。这样的函数一次只能运行一个,无论它被调用的频率如何。
所以你应该安全。
答案 1 :(得分:1)
JavaScript是单线程的,因此函数调用不能“重叠”。如果多次触发事件,那么函数将完全执行(减去它可能调用的任何异步函数)以响应第一次触发,然后再次执行以处理后续触发。
但是,当再次执行该函数时,仍然会在一次调用中对a
进行更改,因此如果它依赖于a
的值,则可能会遇到问题 - 它归结为这个函数究竟是用变量做的。