下面是之前看到的一篇文章,出处不记得了,简单总结和翻译下

1 首先网站的1s延迟会带来大量的商机流失,首页加载速度非常重要

2 加载的过程和时间分级

用户请求到机器------前端渲染------后端渲染

3 前端部分

前端的渲染过程(dom----cssom----rendertree----layout-paint)

优化crp思路

  • 减少关键资源个数和大小

  • 缩短crp长度?

  • 开启浏览器缓存

优化的方法

  • 剖析(借助网站分析工具分析crp优化建议,gtmetrix,webpagetest,pagespeed insights)

  • 处理内联和css优化工具(processhtml,postcss)

  • js优化

4  网络性能优化

时间分布

dns解析------连接初始化------内容下载

摘自网络:

当我们键入https://thinks.baqend.com到浏览器并回车,浏览器以启动DNS查询来识别与  域相关的IP地址。这种查找必须对每个单独的域进行。

与所接收的IP地址,浏览器发起TCP连接与服务器。在TCP握手需要2个往返(1 TCP快速打开)。使用安全的SSL连接 TLS握手需要额外的2往返(1 TLS抢跑会话恢复)。

初始连接之后,浏览器发送的实际请求并等待数据进来,这时候第一字节很大程度上取决于客户机和服务器之间的距离,并包括在服务器来呈现页面(包括会话查找所需要的时间,数据库查询,模板渲染等)。

   最后一步是在下载资源中potentionally许多往返(在此情况下的HTML)。特别是新连接通常需要很多往返,因为初始拥塞窗口很小。这意味着TCP没有从一开始就使用完整带宽的权利,但增加了它随时间(见TCP拥塞控制)。速度受到慢启动算法的支配,该算法使每次往返的拥塞窗口中的段的数量加倍,直到丢包发生。在移动和Wifi网络上丢失数据包因此具有很大的性能影响。

    事实证明带宽速度从5Mbps到以上则增加相应的内容并不会增加同等效率的收益

    延迟的处理和优化

  •     持久连接

  •     减少重定向(??)

  •     优先使用HTTP 2.0

  •     指定缓存头

  •     使用cdn来缓存图像,css,html和js等静态资源

  •      界面通过小的部件异步加载

5 后端性能优化

     可扩展均衡器,无状态应用服务器,分布式数据库

6 AMP