本文分析了Javascript性能优化的事件委托:

为以下每个短语绑定一个单击事件



去一个地方
做某事
说你好





一、传统的写作方法


第一条为document.getelementbyid VaR(去);
2 = document.getelementbyid VaR(做);
VaR Item3 = document.getelementbyid(打个招呼);
item1.onclick =函数(){
console.log('gosomewhere);
}
item2.onclick =函数(){
console.log('dosomething);
}
item3.onclick =函数(){
警报(hello);
}




在Javascript中,添加到页面的事件处理程序的数量将直接关系到页面的整体性能,而事件越多,性能就越差。

原因很多:

1。每个函数都是占用内存的对象;内存中的对象越多,性能就越差。

2,必须预先由所有事件处理程序指定的DOM访问数量将延迟整个页面的交互式准备时间。

两。事件委托

解决事件处理程序太多问题的方法是事件委托。

事件委托使用事件冒泡,只有一个事件处理程序的规定,使所有类型的事件是可以管理的。例如,单击事件总是出现在文档级别。也就是说,我们可以指定没有将事件处理程序添加到每个可点击的元素为整个页面的onclick事件处理程序。

事件委托方法:


var list = document.getelementbyid(mylinks );
list.onclick =功能(e){
VaR目标= e.target;
开关(目标id){
案例去:
console.log('gosomewhere);
打破;
案例做:
console.log('dosomething);
打破;
案例打个招呼:
警报(hello);
打破;
}
}




三。使用事件委托的优点:

1)文档对象可以访问速度非常快,你可以在页面生命周期的任何时间点为其添加事件处理程序(无需等待domcontentloaded或加载事件)。换句话说,只要点击网页上的元素是,相应的函数可以立即可用。

2)在页面上设置事件处理程序所需的时间较少。只有一个事件处理程序需要较少的DOM引用和更少的时间。

3)整个页面占用更少的内存,可以提高整体性能。

希望本文能对javascript程序设计有所帮助。