DOM
一,DOM学习资源
MDN 、DOM specifications
二、学习方法
看别人封装的代码 方方老师封装的DOM
3、4个月
自己封装
三、DOM的性能为什么这么慢?
这里涉及到浏览器的两个引擎:JS引擎、渲染引擎
DOM的实现原理:x.style.bg="blue",是把原来的颜色擦掉,渲染成蓝色,注意,这里的渲染就是渲染引擎来做的。
我们写代码时,在jS文件中操作DOM元素,js文件内容是由JS引擎操作,而DOM的最终被操作时渲染引擎在操作,所以操作DOM从JS引擎跨越到渲染引擎,正在运行过程中,跨越了进程。
一把进程内耗时:0.1ms
跨进程耗时:10ms
提高自己计算机底层的知识《操作系统》、软考
四、怎么提高DOM性能?
(1)尽力减少DOM操作(dom与网页之间的交互操作)
如下:
DOM操作少:创建的li插入创建的ul,再把ul一并插入body
DOM操作多:创建的ul插入body 再将创建的li插入ul
(2)使用fragment片段
把所有创建好的节点插入到fragment片段里面,再将fragment片段一并插入body
五、测试代码的运行时间
console.log(new Date()-0)//获取开始时间戳
.....
console.log(new Date()-0)//获取结束的时间戳
六、DOM性能测试网站
fastest代表运行最快,花时间最少
七、
平常写代码中:可读>优化
事件
一、事件的由来
事件是依附DOM的创造而产生的
二、事件的学习法
DOM Event MDN所有事件列表经常过一遍
DOM能监听哪些事件
注:
DOM突变: DomContantloaded与load的区别?
DomContantloaded:加载网页节点,不包括样式,图片等
load:加载包括网页节点,样式,图片等
三、事件委托
非常重要
CurrentTarget与target的区别:
ul代理li
target:指li
CurrentTarget:指ul
四、JQ的事件委托封装的非常好
(1)可以监听你是不是我的元素
(2)动态监听