下面是之前看到的一篇文章,出處不記得了,簡單總結和翻譯下
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