返回
|搜索
转发

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

2021-12-06 17:27
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的同时,也要注意其浏览器兼容性

西安Web前端工程师培训课程
面授小班
详询13人预约
首页1
我的
电话
在线666咨询
正规学校正规学校助学补贴助学补贴优质服务优质服务
logo