英泰移动通信教育

7x24小时咨询热线

400-660-3310

当前位置 : 好学校 英泰移动通信教育 学习资讯 资讯详情

如何优化前端性能(六):性能更好的API

2021-12-06

web前端

1、用对选择器

选择器的性能排序如下所示,尽量选择性能更好的选择器

id选择器(#myid)

类选择器(.myclassname)

标签选择器(div,h1,p)

相邻选择器(h1+p)

子选择器(ul > li)

后代选择器(li a)

通配符选择器(*)

属性选择器(a[rel="external"])

伪类选择器(a:hover,li:nth-child)

2、使用requestAnimationFrame来替代setTimeout和setInterval

希望在每一帧刚开始的时候对页面进行更改,目前只有使用 requestAnimationFrame 能够**这一点。使用 setTimeout 或者 setInterval 来触发更新页面的函数,该函数可能在一帧的中间或者结束的时间点上调用,进而导致该帧后面需要进行的事情没有完成,引发丢帧

3、使用IntersectionObserver来实现图片可视区域的懒加载

传统的做法中,需要使用scroll事件,并调用getBoundingClientRect方法,来实现可视区域的判断,即使使用了函数节流,也会造成页面回流。使用IntersectionObserver,则没有上述问题

4、使用web worker

客户端javascript一个基本的特性是单线程:比如,浏览器无法同时运行两个事件处理程序,它也无法在一个事件处理程序运行的时候触发一个计时器。Web Worker是HTML5提供的一个javascript多线程解决方案,可以将一些大计算量的代码交由web Worker运行,从而避免阻塞用户界面,在执行复杂计算和数据处理时,这个API非常有用

但是,使用一些新的API的同时,也要注意其浏览器兼容性

收藏
分享到:

相关课程

相关资讯

英泰移动通信教育

英泰移动通信教育

认证等级

信誉良好,可安心报读

英泰移动通信教育

已获好学校V2信誉等级认证

信誉值

  • (60-80)基础信誉积累,可放心报读
  • (81-90)良好信誉积累,可持续信赖
  • (91-100)充分信誉积累,推荐报读

与好学校签订读书保障协议:

  • 100%
  • 54
  • 3426
在线咨询
;