前端性能怎么优化这这个问题怎么回答不容易漏知识点?

63 阅读3分钟

前端性能优化有很多个知识点,一个个点的记容易忘记,可以从为什么会有这个问题出现来切入。

为什么会出现前端性能优化?

页面上如果有加载过慢的问题会导致以下问题:

  1. 加载过慢的页面会导致用户的使用体验感很差;
  2. 使用体验感差有可能会直接x掉页面,那么页面内容再有吸引力也会拦截一些耐心没那么好的用户,从而转化率也会减低。
  3. 搜索引擎算法越来越注重用户体验。如果页面加载时间过长,用户可能会选择离开并转向其他网站,这会增加页面的跳出率(bounce rate),降低用户停留时间和页面浏览量,从而对SEO排名产生负面影响

那加载过慢大都是因为什么呢?怎么解决?

原因:加载的资源太多、太大,页面上的重绘重排过多 解决办法:减少请求、把请求的体积变小、加快的响应速度、减少重绘重排

页面要加载的资源有:css、js、html、图片、接口

怎么减少请求:

合并资源、图片用雪碧图、不需要立马展示的内容延迟加载、异步加载或按需加载非首要功能的资源、功能

具体情况如下:

  • css、js、html这些文件可以合并成一个,节省资源请求数量
  • css、js、html、图片进行压缩,减少资源大小
  • 图片采用雪碧图减少图片请求次数
  • 异步加载或按需加载非首要功能的资源、功能

怎么加快响应速度:

用浏览器缓存和cdn缓存

(如果请求资源需要去服务端,服务端需要经过查询本地服务器是否有,没有再去根服务器查询,没有根服务器给个地址回来,再拿着地址去查询,循环反复直到拿到数据。查询时间的长短和页面的响应速度息息相关,如果可以从浏览器缓存或cdn缓存里拿,就大大减少了查询时间。

怎么减少重绘重排?

用CSS动画、requestAnimationFrame替代js、flash实现的动画效果

css3的动画效果是GPU渲染而js、flash的动画是CPU渲染,动画效果的运行当然是GPU比CPU更快。 js、flash的动画会对dom频繁的进行操作会导致性能下降的。

用http2.0发请求

这个我不是很了解,问了AI,AI回答如下:

HTTP/1.1和HTTP/2.0是两个不同版本的HTTP协议,它们在以下几个方面有所区别:

  1. 多路复用:HTTP/1.1使用串行请求-响应模式,即每个请求都需要等待前一个请求的响应完成后才能发送。而HTTP/2.0引入了多路复用技术,可以同时发送多个请求和接收多个响应,提高了网络传输效率。
  2. 头部压缩:HTTP/1.1在每个请求和响应中都需要携带大量的头部信息,导致网络传输的额外开销。HTTP/2.0使用了HPACK压缩算法对头部进行压缩,减少了传输的数据量。
  3. 二进制传输:HTTP/1.1使用纯文本的格式进行传输,而HTTP/2.0使用二进制格式进行传输,提高了解析效率。
  4. 服务器推送:HTTP/2.0支持服务器主动推送,即在客户端请求某个资源时,服务器可以主动推送相关的资源给客户端,减少了请求的延迟。

目前,HTTP/2.0的使用逐渐增多,特别是在大型网站和应用中。一些常用的软件和服务,如Google、YouTube、Facebook、Twitter等都在使用HTTP/2.0来提供更快速的网页加载和数据传输。此外,现代的Web浏览器,如Chrome、Firefox、Safari等也都支持HTTP/2.0协议。