2012-08-08 15 views
1

當我使用'DOMSubtreeModified'時,我得到多個,有時30多個事件觸發。是否可以確保只有在最後一次DOMSubtreeModified被觸發後纔會調用我的函數?如何識別最後的DOMSubtreeModified是否被解僱?

+0

您可以創建一個節流閥只有在50ms內沒有發生DOMSubtreeModified事件後纔會運行你的函數 – 2012-08-08 15:05:32

回答

5

凱文B的提到油門的執行情況:

function throttle(fn, time) { 
    var t = 0; 
    return function() { 
     var args = arguments, 
      ctx = this; 

      clearTimeout(t); 

     t = setTimeout(function() { 
      fn.apply(ctx, args); 
     }, time); 
    }; 
} 

document.addEventListener("DOMSubtreeModified", throttle(function() { 
    //code 
}, 50), false); 

如果可能的話,使你的代碼獨立的DOM突變事件,他們比評估和更邪惡的結合