Skip to content

Commit 38f2473

Browse files
author
icodeajk
committed
updata
1 parent 39bacd6 commit 38f2473

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

_posts/2018-06-07-关于jQuery常见优化写法阅读笔记.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ dom树加载完毕,即document加载完毕,dom和dom元素不一样
3737
### 4. 它和window对象的load事件有什么区别?
3838

3939

40-
触发时机不同:ready是在DOM树加载完毕后执行操作,load是在页面加载完毕再执行,包括DOM树和各个资源。
40+
- 触发时机不同:ready是在DOM树加载完毕后执行操作,load是在页面加载完毕再执行,包括DOM树和各个资源。
4141

42-
来源不同:ready时jQuery的自定义事件,而window的load事件是W3C定义的标准事件
42+
- 来源不同:ready时jQuery的自定义事件,而window的load事件是W3C定义的标准事件
4343

44-
适合执行的操作不一样:
44+
- 适合执行的操作不一样:
4545

4646

4747
衍生问题:load和onload的区别?
@@ -67,7 +67,9 @@ $(window).load()和body.onload()都是完全加载页面时触发。不推荐用
6767
衍生问题:为什么onload()可以用body?
6868

6969
一般来说,在window上面发生的任何事件都可以在body元素中通过相应的特性来指定,因为在HTML中无法访问window元素。
70+
7071
这样是为了保证向后兼容的权宜之计,但所有浏览器都能很好地支持这种方式。
72+
7173
结论:为了对应上window.onload,body标签才有onload。
7274

7375

@@ -95,8 +97,7 @@ DOM加载完毕是指加载完DOM树,而window加载完毕指的是页面加
9597

9698
2.判断匹配的元素(li)是否包含于被委托了事件监听的外层元素(ul),有则继续,无则退。
9799

98-
3.到达这里说明委托外层元素进行事件处理的子元素(li)的事件确实触发了,此时就可以执行子元素委托给外层元素的handler,
99-
并把相应的事件信息,封装到一个事件对象中,一同传给这个handler。
100+
3.到达这里说明委托外层元素进行事件处理的子元素(li)的事件确实触发了,此时就可以执行子元素委托给外层元素的handler,并把相应的事件信息,封装到一个事件对象中,一同传给这个handler。
100101

101102

102103

@@ -119,12 +120,11 @@ DOM加载完毕是指加载完DOM树,而window加载完毕指的是页面加
119120
### 9.尽量减少调用DOM元素的操作次数
120121

121122

122-
回流:当执行元素的增删改,字号调整时,会导致页面结构发生变化,此时浏览器会重新调整页面布局,这个过程被称为回流。
123+
- 回流:当执行元素的增删改,字号调整时,会导致页面结构发生变化,此时浏览器会重新调整页面布局,这个过程被称为回流。
123124

124-
重绘:当重新设置修改元素的样式时(页面的结构布局没发生变化),会重新设置元素的显示样式,这个过程称为重绘。
125+
- 重绘:当重新设置修改元素的样式时(页面的结构布局没发生变化),会重新设置元素的显示样式,这个过程称为重绘。
125126

126-
双方关系和开销:回流一定引起重绘,而重绘不会引起回流,其中回流开销最大。而一个DOM元素操作如果引起页面结构变化,
127-
就会引起页面回流,当操作频繁时,会引发整体性能的下降。
127+
- 双方关系和开销:回流一定引起重绘,而重绘不会引起回流,其中回流开销最大。而一个DOM元素操作如果引起页面结构变化,就会引起页面回流,当操作频繁时,会引发整体性能的下降。
128128

129129

130130

@@ -133,6 +133,7 @@ DOM加载完毕是指加载完DOM树,而window加载完毕指的是页面加
133133
添加节点时,先拼接HTML字符串,再去用append,html()和prepend等方法插入;
134134

135135
2.常见的由于DOM元素样式变化引发的会流的优化方案。
136+
136137
通过修改class,统一调整样式。jQuery常用的有addClass(),removeClass()和toggleClass();
137138

138139

@@ -142,17 +143,16 @@ DOM加载完毕是指加载完DOM树,而window加载完毕指的是页面加
142143

143144
1. 在特定业务场景,自定义的数据属性,其命名难免会和元素的内置属性名称冲突;
144145

145-
2. 驼峰命名法广泛采用于变量命名,但是html代码不区分大小写,如果在html代码中使用驼峰命名法给自定义属性命名,
146-
那么自定义属性中出现的大写字母,也终将被解析为小写字母。
146+
2. 驼峰命名法广泛采用于变量命名,但是html代码不区分大小写,如果在html代码中使用驼峰命名法给自定义属性命名,那么自定义属性中出现的大写字母,也终将被解析为小写字母。
147147

148148

149149
为了解决这两个问题,jQuery提供了data机制:
150150

151-
在html代码中,规定自定义数据属性需添加data-前缀,以和元素的内置属性区分,进而避免命名冲突;
151+
- 在html代码中,规定自定义数据属性需添加data-前缀,以和元素的内置属性区分,进而避免命名冲突;
152152

153-
同时,规定自定义属性使用中横线命名法,以应对html代码不区分大小写的问题;
153+
- 同时,规定自定义属性使用中横线命名法,以应对html代码不区分大小写的问题;
154154

155-
在js代码中,使用data(key)来读取自定义数据属性值,其中自定义属性名key采用驼峰命名法。
155+
- 在js代码中,使用data(key)来读取自定义数据属性值,其中自定义属性名key采用驼峰命名法。
156156

157157

158158
```html

0 commit comments

Comments
 (0)