Fra*_*ank 7 javascript events javascript-events
假设我load向窗口添加一个事件,如下所示:
window.addEventListener("load",initialize);
Run Code Online (Sandbox Code Playgroud)
我应该在事件被触发后从窗口中删除load事件监听器吗?它只发射一次,但在发生这种情况后会继续听吗?
这很简单:
function initialize(event_){
/* Just by adding this line. */
window.removeEventListener("load",initialize);
}
Run Code Online (Sandbox Code Playgroud)
但这是否过度或者实际上是否有利于我的计划的表现?我只是问,因为"加载"事件只触发一次,所以如果它只是解决了它就会有意义.我从来没有听说过一个自我解决的倾听者,但是......有什么想法吗?
编辑:另外,我并不特别关注"加载"事件,只是监听器继续监听只触发一次的事件的一般情况.
daG*_*aGo 13
window.addEventListener('load', initialize, {once: true});
在事件被触发后,我应该从窗口中删除加载事件侦听器吗?
我从未见过这样做,所以我认为没有真正的必要。
它只触发一次,但它会在发生后继续监听吗?
它只被 DOM 触发一次,是的。但它会继续侦听,您可以轻松地load手动触发事件(参见MDN示例)。
但这是矫枉过正还是真的有利于我的程序的性能?
通常它是矫枉过正的,因为这不会产生很大的不同。当然,它可能会在 上触发垃圾收集initialize,这可以节省一些内存(或更多,取决于您的代码结构)并通过使其可用于您的应用程序的其余部分来提高性能。
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |