目录
3:documentFragment 是什么?用它跟直接操作 DOM 的区别是什么?
1:如何避免回流与重绘?
减少回流与重绘的措施:
- 操作DOM时,尽量在低层级的DOM节点进行操作
- 不要使用
table布局, 一个小的改动可能会使整个 table进行重新布局 - 使用CSS的表达式
- 不要频繁操作元素的样式,对于静态页面,可以修改类名,而不是样式。
- 使用absolute或者fixed,使元素脱离文档流,这样他们发生变化就不会影响其他元素
- 避免频繁操作DOM,可以创建一个文档片段
documentFragment,在它上面应用所有DOM操作,最后再把它添加到文档中 - 将元素先设置
display: none,操作结束后再把它显示出来。因为在display属性为none的元素上进行的DOM操作不会引发回流和重绘。 - 将DOM的多个读操作(或者写操作)放在一起,而不是读写操作穿插着写。这得益于浏览器的渲染队列机制。
浏览器针对页面的回流与重绘,进行了自身的优化——渲染队列
浏览器会将所有的回流、重绘的操作放在一个队列中,当队列中的操作到了一定的数量或者到了一定的时间间隔,浏览器就会对队列进行批处理。这样就会让多次的回流、重绘变成一次回流重绘。
上面,将
本文详细讲解了前端面试中的常见问题,包括如何避免DOM回流与重绘、优化动画技巧、documentFragment的使用及其与直接操作DOM的差异、节流与防抖的原理及应用场景、JavaScript数据类型与对象的区别,以及null和undefined的异同。同时探讨了let、const与var的差异、new操作符的工作原理,以及Map与Object的比较,为前端开发者提供面试必备知识点。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



