《高性能javascript》学习笔记三

三、dom操作的性能问题

1、为什么dom操作普遍较慢?

dom(文档对象模型)和js独立实现。我们通过js去控制、修改dom,用的办法就是api。因为js和dom在浏览器内部独立实现,所以通过js操作dom就会带来性能消耗。

2、优化dom操作的方式

(1)优化dom操作最直接也最简单的方式,就是减少对dom访问与操作的次数。尽量优先处理数据,然后统一操作dom。

(2)值得一提的是,某个dom元素内插入其他dom对象时,用innerHTML插入字符串的方法,比documen,createElement()方法要更快一些。

(3)另外,克隆已有dom元素也比创建新dom元素更快一些(虽然不明显)。

(4)用js内置的api(firstElementChild、document.querySelectorAll()等)而非引入插件或者其他旧的api(firstChild等)。

(5)减少重绘和回流

3、减少重绘与回流(又称重排)

浏览器在下载完页面上的组件(html标记、js、css、图片等资源),会解析生成两个数据结构:dom树和render树。dom树上的每一个需要显示的节点在render树上至少存在一个对应的节点(display:none的元素没有,但是visibility:hidden的节点有)。dom树和render树构建完成,则绘制页面。

<
  • 0
    点赞
  • 0
    收藏 更改收藏夹
  • 0
    评论
博客
v8worker
05-08 2661
05-06 2637

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值