当使用 DOMSubtreeModified
时,我会触发多个事件,有时会触发 30 多个事件。是否可以确保无论 DOMSubtreeModified
是否被触发,我的函数只被调用一次?
最佳答案
Mutation Events
是无法真正驯服的性能 pig 。因此,它们在一年多前就已被弃用,应仅在真正需要时使用。
您可以使用新的 Shiny 的 Mutation Observers
来自 DOM Level 4(点击那里的链接!)。 DOMSubtreeModified
触发了一千次,而 MutationObserver
只触发一次,包含所有修改并可访问。
工作于(截至 2012/06 年):
- Chrome 18+(前缀为
window.WebKitMutationObserver
) - Firefox 14+(无前缀)
- WebKit 夜间事件
除此之外……一些骇人听闻的解决方案,删除监听器并安排在将来某个时间(一两秒)再次添加它可能值得探索。
关于javascript - DOMSubtreeModified ...如何确保它只触发一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8672344/