事件类型是在太多了,直接跳到事件内存和型能这里javascript
因为事件冒泡的原理,能够只盯一个事件处理程序,用来管理一个类型的全部事件,好比click
事件会一直冒泡到document
层次,也就是说若是能够的话,整个页面指定一个onclick
事件,而没必要给全部元素分别添加事件处理程序java
利用事件委托,再上级或者尽可能高的DOM
层次中添加一个事件处理程序,用来管理下级DOM
的全部事件缓存
因为在销毁DOM
元素的时候并不会移除事件监听程序的,因此会形成不同的内存冗余函数
养成良好的习惯,在移除DOM
元素以前,先移除元素的监听事件性能
还有就是页面有一个onunload
事件,在页面被卸载前执行,可是须要考虑一些变量已经被释放的问题,还有就是若是有缓存页面,可能设计了这种方式就不会走缓存spa
DOM
中的模拟事件
document.createEvent
document.createEvent
建立时间,传入事件类型,返回一个包含初始化事件方法的对象event.initMouseEvent(info)
,这里须要对应事件类型的初始化方法el.dispatchEvent(event)
在对应元素触发事件DOM
事件
initCustomEvent
进行初始化dispatch
到对应元素进行派发initCustomEvent
有四个参数
detail
IE
中的事件模拟
DOM
中的事件模拟差很少,只是方法名有一些不同document.createEvent
event.returnValue= false
el.fireEvent(event)