事件類型是在太多了,直接跳到事件內存和型能這裏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)