深入理解http请求的过程是前端性能优化的核心


css 样式表置顶

用 link 代替 import

js 脚本置底

合理使用 js 的异步加载能力

link 和import的使用区别

  区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。

  区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。

  区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。

  区别4:ink支持使用Javascript控制DOM去改变样式;而@import不支持。

控制重绘与回流

根据场景选择合适的图片格式

  1. jpg有损压缩,压缩率高,不支持透明  —— 大部分不需要透明图片的业务场景 
  2. png支持透明,浏览器兼容好 —— 大部分需要透明图片的业务场景
  3. webp压缩程度更好,在ios webview有兼容性问题 —— 安卓全部 
  4. svg矢量图,代码内嵌,相对较小,图片样式相对简单—— 图片样式相对简单的业务场景  (

    使用iconfont解决icon问题

进行图片压缩 css雪碧图 将图片内签到网页中

 

请求过程中一些潜在的性能优化点 (减少http请求数量 减少请求资源的大小)

  1. dns是否可以通过缓存减少dns查询时间?
  2. 网络请求的过程走最近的网络环境?
  3. 相同的静态资源是否可以缓存?
  4. 能否减少请求http请求大小?
  5. 减少http请求 服务端渲染

文件的压缩   利用网上在线工具压缩css js html等资源

pwa 的应用 service worker