为什么说DOM操作是昂贵的
总体上来说,操作DOM对象时,会触发浏览器的布局(layout) 和 绘制(paint) 行为,这两个罪魁祸首会导致DOM卡慢,占用内存较高等,从而影响用户体验。
浏览器渲染引擎工作流程
- 创建DOM树 HTML分析器,分析HTML元素,构建一颗DOM树
- 创建StyleRules CSS分析器,分析CSS文件,构建Rules树
- 创建Render树 将DOM树和Rules树关联起来,构建一颗Render树
- 布局Layout 分析布局信息,计算坐标位置
- 绘制Painting 开始绘制
这几个工作流程并不会严格遵循先后顺序,而是有可能出现同时进行。
为什么会卡顿?
当你在使用操作JQuery操作DOM时,可能轻松写出几句影响布局(layout) 的语句,比如获取需要的DOM属性、添加或删除DOM元素、改变浏览器窗口大小、修改DOM某些元素样式等等。这些操作指令一旦发出,浏览器就不得不提前执行layout,或者重复执行多次操作,尽管前几次的操作可能是白白浪费的无用功。
所以说,使用虚拟DOM(VDOM)映射成实际DOM来进行DOM操作,或使用CSS动画来替代DOM动画,会大大减少页面重绘。使得性能更加完善。
关注我,不后悔!
为什么说DOM操作是昂贵的相关推荐
- DOM操作总结 (。♥ᴗ♥。) 哇!!
知识点 DOM 本质 DOM 节点操作 DOM 结构操作 DOM 性能 前言 各种框架层出不穷,但DOM操作一直都会是前端工程师的基础,必备知识. 只会Vue和React等框架,而不懂DOM操作的前端 ...
- js hover 触发事件_为什么说JS的DOM操作很耗性能
想问这样的问题,其实是自己心中没有个谱,一直用 js 计算性能来衡量 浏览器dom 操作性能.js性能和浏览器性能其实是两码事. 这个问题很抽象,它里面涉及挺多个小的知识点. 重申一点,js 操作 D ...
- 原生js循环展示dom_为什么说JS的DOM操作很耗性能
想问这样的问题,其实是自己心中没有个谱,一直用 js 计算性能来衡量 浏览器dom 操作性能.js性能和浏览器性能其实是两码事. 这个问题很抽象,它里面涉及挺多个小的知识点. 重申一点,js 操作 D ...
- 为什么DOM操作很慢
转自:http://kb.cnblogs.com/page/534571/ 一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大家都会这样说,在网上学习了一些资料,这边整理出来 ...
- jQuery 学习笔记一(认识jQuery jQuery选择器 jQuery中的DOM操作)
第一章 认识jQuery jQuery代码风格 $(document).ready(function(){ //... }); 简化 $(function(){ //... }); jQuery对象转 ...
- 03-老马jQuery教程-DOM操作(上)
jQuery DOM操作 在没有jQuery之前,DOM的操作相对来说有点麻烦,尤其是DOM节点的搜索.目前我们已经学习了jQuery的选择器,接下带大家一块学习jQuery的DOM操作,jQuery ...
- Jquery基础之DOM操作
Jquery基础之DOM操作 Dom是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准组件.DO ...
- DOM操作之属性和样式操作
在DOM操作,除了前面的节点操作以外,常常被用到的操作还有属性操作和节点操作,下面,主要来总结一下jQuery中的属性操作方法和样式操作方法. 在开始操作前,我们需要先在html中添加如下代码,后面所 ...
- pyV8不支持dom操作,关于PyV8的支持DOM的疑问
pyV8不支持dom操作,关于PyV8的支持DOM的疑问 PYV8只支持纯js语句.不过官方提供了w3c.py以及brower.py,可以基于此来完成,但这个用起来还是比较麻烦. 在爬取网站时,需要提 ...
最新文章
- Git 工作流的正确打开方式
- 004_Gson树模型
- Ubuntu terminal路径太深,名字太长
- OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
- 吴恩达《优化深度神经网络》精炼笔记(3)-- 超参数调试、Batch正则化和编程框架...
- jsp页面页面post传值_几种JSP页面传值方式
- extjs5(05--主界面上加入顶部和底部区域)
- 带你走近AngularJS - 基本功能介绍
- 最初语音识别率只有60%,如今坐拥5亿用户,这款AI产品是怎么做到的?
- 团队协调办公工具比较
- 进程部分(IPC机制及生产者消费者模型)和线程部分
- 面试硬核干货:纯CSS实现垂直居中,快来收藏吧
- matlab线性代数对角化,工程线性代数(MATLAB版) (2007年7月)
- SQL 数据库 学习 011 关系、一对一、一对多、多对多
- ele.getBoundingClientRect()使用
- 全新UI众人帮任务帮PHP源码 悬赏任务抖音快手头条点赞源码 带三级分销可封装小程序
- 取得平均薪水最高的部门的部门名称
- 令人拍案叫绝的Wasserstein GAN(转载)
- 系统分析与设计个人总结
- EPR测试常见问题解答