《JavaScript 高级程序设计(第三版)》阅读随笔
内存和性能
事件委托
当在页面中存在数量繁多的的事件时,会影响到页面的整体性能,此时可以通过事件委托的方式解决。比如将所有的点击事件放在一个事件处理程序中,只有在使用时才创建。
移除事件委托程序
在一个页面中,可能会存在已创建的事件未回收的情况,当频凡发生这种情况时,由于该部分内存并不会被合理回收,所以会影响页面的性能。此时可以通过设置该事件为空的方式来手动回收内存,或者在 onunload 事件中统一移除委托过的事件。
DOM 的模拟事件
在 document 对象上,可以通过 createEvent 的方式模拟创建事件。在 DOM2 级下,createEvent 方法可以接收以下字符串参数:
UIEvents:一般的 UI 事件;
MouseEvents:鼠标事件;
MutationEvents:DOM 变化事件;
HTMLEvent:HTML 事件;
在 DOM3 级下,另外多了一个 KeyboardEvent 键盘事件,原来 DOM2 级下的字符串在去掉最后一个 s 字符串后传入,可以作为 DOM3 的参数。
在创建好事件对象以后,首先需要对其进行初始化,初始化内容包含事件的基本属性,然后可以通过调用 dispatchEvent 方法来执行事件,该方法接收一个模拟事件对象作为参数。