在我的应用程序中,我使用了很多setTimeout函数,所以我担心它是否会导致性能问题:
setTimeout(function(){
// do something
},0);
我发现人们用这种方式:
var t=setTimeout(function(){
// do something
clearTimeout(t);
});
我想知道是否有必要?
答案 0 :(得分:1)
不,对象将被自动销毁(至少应该是)。当您需要删除已设置的超时时,需要调用clearTimeout
。
Ex:你在将一些元素悬停时将超时设置为5秒,但是用户在超时之前将光标从元素中移出 - 所以你需要删除已经初始化的超时。
答案 1 :(得分:1)
不,这不是必要的。使用clearTimeout()
取消安排将来仍然存在的超时(即阻止发生)。
在发生(或发生)之后清除超时没有任何正面影响。
这就足够了。
setTimeout(function(){
// do something
},0);
答案 2 :(得分:1)
不,不是。只有在需要在超时发生之前取消超时时才需要该变量。从回调内部调用clearTimeout
无效,因为不再有超时停止。
答案 3 :(得分:1)
只有你想在它发生之前取消它 - 你将永远无法以0的延迟停止......