由于事件处理程序可以为 Web 应用程序提供交互能力,如果我们随意的在页面上添加事件,这些事件处理程序的数量会关系到页面整体的运行性能。
原因有两个方面。
首先,每个函数都是对象,对象都会占用内存;内存中的对象越多,性能就越差。
其次,指定事件处理程序会到导致Dom访问次数的增加,进而会延迟界面加载的时间。
解决这个问题的方案有以下两种
事件委托
事件托是为了解决页面中“事件处理程序过多”这个问题。利用事件冒泡,只指定一个事件处理程序,来管理某一类型的所有事件。
var list = document.getElementById("myLinks");EventUtil.addHandler(list, "click", function(event){ event = EventUtil.getEvent(event); var target = EventUtil.getTarget(event); switch(target.id){
case "doSomething": document.title = "I changed the document's title"; break; case "goSomewhere": location.href = "http://www.wrox.com";

本文探讨了Vue应用中过多事件处理程序对性能的影响,解释了内存占用和页面响应速度下降的原因。通过事件委托减少事件处理程序数量以及在页面卸载前移除事件处理程序是提高性能的有效策略。同时,文章引发思考,讨论Vue和React中事件处理程序的绑定位置,是真实DOM还是虚拟DOM。
最低0.47元/天 解锁文章
3033

被折叠的 条评论
为什么被折叠?



