10月9日性能优化总结

2020-10-08  本文已影响0人  Lee弟弟

前提:

从输入URL到页面加载完成,发生了什么?

性能优化基本分两大方向:

按步骤分析优化策略

浏览器通过DNS,把 url解析为IP

<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" href="https://aimedia.shuwen.com">

和ip地址建立TCP链接发送HTTP请求

tcp:负责数据完整性和有序型
优化策略:

  1. ⻓连接
  2. 减少文件体积
    1. js打包压缩
    2. 图片压缩
    3. gzip
  3. 减少文件请求次数
    1. 雪碧图
    2. js,css打包
    3. 缓存控制
    4. 懒加载
  4. 减少⽤用户和服务器的距离
    1. cdn
  5. 本地存储

http:负责应用层数据
优化策略:

<body>
  
  <script type="text/javascript" src="xxx.js"></script>
  <script type="text/javascript" src="xxx.js"></script>
  <script type="text/javascript" src="xxx.js"></script>
  <script type="text/javascript" src="xxx.js"></script>
  <script type="text/javascript" src="xxx.js"></script>
  <script type="text/javascript" src="xxx.js"></script>
  <script type="text/javascript" src="xxx.js"></script>
  <script type="text/javascript" src="xxx.js"></script>
  <script type="text/javascript" src="xxx.js"></script>
</body>

像这种类似图标的图片,如果每个图标以一张图片的形式加载,将会带来很多次请求,可以做成雪碧图。

<!-- 可以使用绝对或相对路径 -->
<link rel="prefetch" href="xxx.html">
<link rel="prefetch " href="xxx.png">

解析html、css,渲染页面

React

  1. shouldComponentUpdate:当只有少量状态值能影响组件输出的使用:
    shouldComponentUpdate(nextProps, nextState) {
    return nextState.someData !== this.state.someData
    }

ssr

可以先把页面重要的内容(一般是首页)用模版吐出来(可以配合骨架屏),再异步加载其他静态内容和其他模块的内容。

上一篇 下一篇

猜你喜欢

热点阅读