附加多个JS点击处理程序会减慢页面的速度吗
Will attaching multiple JS click handlers slow down a page?
我可能有200个点击处理程序,必须附加在一个页面上。(我无法委托它们,因为它们与需要在单个元素上的jQuery插件相关联)
我想知道附加这么多点击处理程序是否会降低性能?
我知道mouseover
/scroll处理程序可能会被触发很多次,并且会减慢页面的速度——然而点击处理程序的触发频率较低,但让它们"监听"会减慢页面速度吗?
如果您有200个点击处理程序,每个处理程序都连接到不同的对象,那么唯一会让您慢一点的地方就是连接200个事件处理程序。一旦它们被附加,无论在200个单独的对象上有200个事件处理程序,还是在1个对象上有1个事件处理器,单个单击都不会有什么不同。
如果在同一个对象上有200个单击处理程序,那么在该对象上处理单击时可能会出现速度减慢,因为它必须进行200个函数调用才能执行所有200个事件处理程序。
因此,只要它们都在单独的对象上,唯一的慢操作就是最初附加事件处理程序。一旦连接,就不会对性能产生影响。
没有。
您是对的,mouseover处理程序可能会被大量解雇,但将侦听器连接到事件这一简单事实并不会减慢页面的速度。
然而,如果您在一个事件上有200个侦听器(这是非常不可能的),那么当事件被触发时,可能会减慢您的速度。再说一遍,我认为情况并非如此。
当然,事件处理程序并不是完全免费的,但是它们非常便宜。问题是与处理程序相关的事件是怎么做的。通常,元素、动画等的呈现会对浏览器的性能造成更大的损失。
此外,事件侦听器的实现方式也有所不同。例如,请参阅这篇文章
相关文章:
- AMD应用程序在浏览器中的加载速度是否快于CommonJS应用程序
- 供应商前缀 CSS 解决方法(引导程序)的速度和大小
- JQuery在执行速度上是否有任何缺点,这些缺点在大规模的web应用程序中可能会很明显
- 简单的dart网页应用程序在IE上添加按钮的速度非常慢
- 在固定间隔内调用 AJAX 函数是否会减慢应用程序的速度
- 设置为“run_at”document_start“的 Chrome 扩展程序运行速度太快
- Chrome 扩展程序:页面加载速度比扩展程序代码快
- 如何优化 jQuery 事件处理程序以提高速度
- 可以要求JS减慢使用角度框架编写的cordova应用程序的速度
- 为什么我的paperjs应用程序占用了这么多CPU,而且速度变慢了
- 附加多个JS点击处理程序会减慢页面的速度吗
- 是$scope$对于一个大型应用程序来说,广播速度足够快,或者我应该创建一个自定义消息总线
- 在Android上加载HTML5应用程序速度较慢
- 安卓设备上的JavaScript/HTML/CSS应用程序-速度非常慢
- GridView RowDataBound事件降低了应用程序ASP.NET C#的速度
- 提交处理程序正在工作,但速度很慢
- 我的Node.js应用程序的反应速度非常慢
- 流星新的应用程序结构减慢了ui文件夹的开发速度
- 客户端J2EE应用程序中的速度优化
- 在Google Chrome和其他WebKit浏览器中,点击事件处理程序速度较慢