对于一个函数test(),可以写成下面的模式:
[code]
var test_lock=false;
function test(){
if(test_lock) setTimeout("test()",10);
else test_body();
}
function test_body(){
test_lock=true;
//[test的主体]
test_lock=false;
}
[/code]
一般情况下可以保证[test的主体]同一时刻只有一个线程在执行。当然如果[test的主体]中有setTimeout之类的东西,情况复杂一点,须另行处理,最好是避免。