《JavaScript 高級程序設計(第三版)》閱讀隨筆
內存和性能
事件委託
當在頁面中存在數量繁多的的事件時,會影響到頁面的整體性能,此時可以通過事件委託的方式解決。比如將所有的點擊事件放在一個事件處理程序中,只有在使用時才創建。
移除事件委託程序
在一個頁面中,可能會存在已創建的事件未回收的情況,當頻凡發生這種情況時,由於該部分內存並不會被合理回收,所以會影響頁面的性能。此時可以通過設置該事件爲空的方式來手動回收內存,或者在 onunload 事件中統一移除委託過的事件。
DOM 的模擬事件
在 document 對象上,可以通過 createEvent 的方式模擬創建事件。在 DOM2 級下,createEvent 方法可以接收以下字符串參數:
UIEvents:一般的 UI 事件;
MouseEvents:鼠標事件;
MutationEvents:DOM 變化事件;
HTMLEvent:HTML 事件;
在 DOM3 級下,另外多了一個 KeyboardEvent 鍵盤事件,原來 DOM2 級下的字符串在去掉最後一個 s 字符串後傳入,可以作爲 DOM3 的參數。
在創建好事件對象以後,首先需要對其進行初始化,初始化內容包含事件的基本屬性,然後可以通過調用 dispatchEvent 方法來執行事件,該方法接收一個模擬事件對象作爲參數。