在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
众所周知,在富网页应用中编写脚本时,无可避免地要跟DOM打交道,但是频繁地对于DOM进行操作,又会导致损耗性能,那么如何才能优化这个性能瓶颈呢?其实这也是前端面试的必考题,一般来说有大致七种方式,归纳起来都是从三种角度出发,即访问和修改DOM元素;修改DOM样式;通过DOM事件处理程序来响应用户。下面我们来详细讲解一下优化DOM操作的性能。

1、查找元素的优化。因为 ID 是唯一的,也有原始的方法,因此使用ID 查找元素是最快的,其次的是根据类和类型查找元素,通过属性查找元素是最慢的,因此应该尽可能的通过 ID 或者类来查找元素,避免通过属性来查找元素。
2、减少访问和改变DOM元素,包括添加,修改,删除DOM。改变DOM就会引起浏览器渲染,而渲染是相当慢的,因此应该避免不必要的渲染。
3、减少改变DOM的样式类等。改变DOM元素的样式,类也会导致浏览器渲染,因此也应该减少不必要的操作。
4、批量修改DOM时从文档流中摘除该元素 ,对其应用多重改变 , 将元素带回文档中 , 这样可以最小化重绘和重排版 。
具体方法:
(1)隐藏元素,进行修改,然后再显示它。
(2)将原始元素拷贝到一个脱离文档的节点中,修改副本,然后覆盖原始元素。
5、减少 iframeiframe 需要消耗大量的时间,并阻塞下载,建议少用。
6、样式放在 header 中,脚本放在关闭标签</body>之前样式放在。header 中,可以加快渲染,脚本放在关闭标签</body>之前可以加快下载速度,不免阻塞下载。
7、使用事件委托,减少绑定事件的数量。多次访问同一DOM,应该用局部变量缓存该DOM。
以上就是如何优化DOM操作的性能的具体方法。相信看完本篇文章,大家如果在前端面试题再遇到这样的问题,就可以能轻松应对啦。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Web前端工程师需要学习那些编程语言?
Web前端工程师需要学习那些编程语言?几年前的web前端工程师只要学会HTML和CSS就可以找到一个适合的岗位,但是在web前端快速的迭代发展过程中,前端工程师的要求也越来越高,仅仅会HTML+CSS的同学也只能拿到行业的最低薪资。一个高薪的web前端工程师需要充分掌握HTML+css、以及JavaScript和jQuery。下面具体为大家介绍这几门语言 。
11210
2019-06-20 17:54:54
微信小程序前端怎么做?新手开发入门教程
在大家的实际生活中,微信小程序随处可见。想必大家都多多少少学习过微信小程序,或者尝试开发微信小程序,那么微信小程序前端怎么做呢?本文是一个新手开发入门教程,希望给前端的小伙伴开发小程序,提供一点帮助。
10744
2019-09-05 17:48:42
前端开发常用的编辑器有哪些?
前端开发常用的编辑器有哪些?工欲善其事必先利其器,每个前端工程师在做前端开发的时候,一定有几款自己用着顺手的编辑器。而一款好用且适合自己的前端开发编辑器,往往会达到事倍功半的效果。以下是小编为大家推荐的几款编辑器,它们分别是HBuilder、WebStorm、Sublime Text、Visual Studio Code和wampServer。
7645
2019-10-18 17:09:50
Flutter入门学习哪些内容?
入门需要学习Dart语言、Flutter控件体系、动画体系、触摸和交互机制、网络编程、数据存储、状态管理等内容。Flutter是Google力推的跨平台框架,可快速在iOS、Android构建高质量的原生用户界面,且完全免费与开源;
7773
2019-12-30 17:57:05
Web前端都需要学什么?从哪入门?
基础阶段学习HTML常用标签与表单控件、CSS基本样式及显示模式、选择器、标签显示模式、CSS复合选择器、CSS背景应用、CSS三大特性、CSS盒子模型、浮动、定位、JavaScript基础语法、DOM操作,事件处理、DOM应用等基础阶段核心知识点;以问题为导向的项目实战开发阶段,初学者加深对前端基础知识理解的同时,获取Web项目开发的技巧与思路,锻炼Web网站开发的能力。
4992
2021-04-28 10:39:15
