0

我有一个简单的可调整大小的 div(通过jQuery 的 resizable实现),我正在使用函数处理调整大小事件。

所以,假设这是我的代码:

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”是一个全局变量!)。我使用此代码是否安全,或者可能存在某种冲突?

问候

4

2 回答 2

2

如果您询问线程安全,JavaScript 是单线程的。像这样的函数一次只能运行一个,无论它被调用的频率如何。

所以你应该是安全的。

于 2013-01-22T10:05:18.803 回答
1

JavaScript 是单线程的,所以函数调用不能“重叠”。如果您多次触发该事件,则该函数将完全执行(减去它可能调用的任何异步函数)以响应第一次触发,然后再次执行以处理后续触发器。

但是,a当再次执行该函数时,仍然会在一次调用中进行更改,因此如果它依赖于您的值,a您可能会遇到问题 - 它归结为该函数对变量所做的确切操作。

于 2013-01-22T10:04:48.397 回答