JavaScript事件委派在窗口上重要吗?

JavaScript事件委派在窗口上重要吗?,javascript,performance,dom-events,Javascript,Performance,Dom Events,您应该避免将多个处理程序绑定到窗口事件,而是使用自己的委派方案,这是出于性能原因吗 事件委派对于消除添加/删除动态添加和删除DOM元素的多个处理程序的开销很有意义,但这似乎根本不会影响全局事件 如果您考虑如何在窗口上创建自己的事件委派方案(创建事件名称的映射->处理程序列表并进行相应管理),它可能看起来很像浏览器在内部处理处理程序的方式。此外,从速度和内存的角度来看,用低级语言实现的浏览器可能更高效 然而,作为DOM,我知道可能存在一些深奥的实现细节,使得添加或删除自己的处理程序非常低效,所以我

您应该避免将多个处理程序绑定到
窗口
事件,而是使用自己的委派方案,这是出于性能原因吗

事件委派对于消除添加/删除动态添加和删除DOM元素的多个处理程序的开销很有意义,但这似乎根本不会影响全局事件

如果您考虑如何在窗口上创建自己的事件委派方案(创建事件名称的映射->处理程序列表并进行相应管理),它可能看起来很像浏览器在内部处理处理程序的方式。此外,从速度和内存的角度来看,用低级语言实现的浏览器可能更高效

然而,作为DOM,我知道可能存在一些深奥的实现细节,使得添加或删除自己的处理程序非常低效,所以我想问一下,是否有人知道这种情况


如果这没有任何吸引力,我会看看是否可以做一些测试,然后自己解决。

老实说,你应该先做测试,然后再问问题。但是你是对的,浏览器比你更了解它自己的内部工作,以及DOM的内部工作,以便做出关于内存管理的智能决策。仅供参考,我相信jQuery使用了将单个处理程序绑定到DOM并在内部管理特定处理程序的技术。所以它的设计者认为这是一个更好的方法;调用此类事件的运行时CPU成本基本为零,甚至用户土地过滤/调度也是如此。人们可能希望一致性,而对我来说,在选择模式时,这将是比性能更重要的因素,比如jQuery?在发布之前,我真诚地想看看这个问题是否已经被问过了。由于没有人询问或回答,我认为公开讨论这个话题可能有用,因为在很多情况下,开发人员可能会遇到这种权衡。我特别考虑调整大小、滚动、媒体查询事件等。事件委派用于侦听多个元素上的事件。因为只有一个窗口对象,所以在这里尝试应用它是没有意义的——没有任何事件可以委托给它。老实说,你应该先做测试,然后再问问题。但是你是对的,浏览器比你更了解它自己的内部工作,以及DOM的内部工作,以便做出关于内存管理的智能决策。仅供参考,我相信jQuery使用了将单个处理程序绑定到DOM并在内部管理特定处理程序的技术。所以它的设计者认为这是一个更好的方法;调用此类事件的运行时CPU成本基本为零,甚至用户土地过滤/调度也是如此。人们可能希望一致性,而对我来说,在选择模式时,这将是比性能更重要的因素,比如jQuery?在发布之前,我真诚地想看看这个问题是否已经被问过了。由于没有人询问或回答,我认为公开讨论这个话题可能有用,因为在很多情况下,开发人员可能会遇到这种权衡。我特别考虑调整大小、滚动、媒体查询事件等。事件委派用于侦听多个元素上的事件。因为只有一个窗口对象,所以在这里尝试应用它是没有意义的——没有任何事件可以委托给它。