前端之頁面性能優化

提到頁面性能優化,諸位老哥能想到哪些方式呢?
這篇文章我們就一下常用的頁面性能優化的方式

 1.資源壓縮合並,減少http請求

其實這種方法沒什麼好說的,因爲http是無連接的協議,每請求一次就會斷開,所以每次連接會花費時間,請求也會花費時間,頁面響應就會變慢,資源壓縮合並就會顯著減少http請求次數,提升頁面性能,css sprite就是這種原理

2.非核心代碼異步加載

主要是用於js加載,因爲js是單線程的,而大多數的網站的js文件就是跨域加載,就會比較緩慢,這時候就可以讓核心js代碼先執行,非核心代碼異步執行,具體方法有哪些呢?

①動態script標籤

使用document.createElement(‘script’);來動態創建script標籤實現

②defer

給script標籤加入一個defer屬性,這樣這個script標籤就會在頁面全部加載完之後執行。

③async

給script標籤加入一個async屬性,他與defer不同的是,具有defer屬性的script會根據先後順序執行,而async則是哪個script加載完成哪個先執行,不會根據先後順序。

3.http緩存

這應該是頁面性能優化最有效的方法了,如果你沒有給頁面設置http緩存,那麼其他的方法可能起到的方法微乎其微。
他的主要原理就是當你訪問一個網頁,瀏覽器會將資源緩存在本地,下次訪問時不會再去訪問服務器,這樣就會大大加快頁面響應
注意http緩存不是cookie,localstorage,這兩個是存儲方式
http緩存分爲強緩存和協商緩存,強緩存就是在過期時間內不會再去訪問服務器請求這些資源,協商緩存是在過期以後不知道服務器內容有沒有發生改變,訪問服務器,如果無改變就會執行本地資源
http緩存的關鍵字key都會在響應頭中,我們打開一個網頁看一下控制檯
這裏寫圖片描述
畫紅線的就是http緩存了,我們一個一個說,
Cache-Control 強緩存,max-age就是它的最大過期時間單位是s
Etag協商緩存,他就如同一個hash值,如果請求服務器的hash值改變,那麼瀏覽器就會重新向服務器請求這些資源,如果未發生改變,則會執行本地資源。
Expires 強緩存,它的value值就是過期時間,這個時間是客戶端本地時間,那麼如果客戶端時間與服務器時間不一致怎麼辦呢,所以Cache-Control就應運而生,兩者都存在的情況會依照Cache-Control來執行
Last-Modified 協商緩存,最後修改時間,同Etag差不多
http緩存就說這麼多,詳細的內容可以去各種前端大牛的博客裏看,專門有講的。

4.CDN加速

因爲國內有多個網絡運營商,服務器地區與客戶端地區如果相隔很遠又不是一個運營商,那麼請求這個網站資源速度就會很慢,cdn就可以讓用戶請求資源加快。

5,dns預解析

link rel=”dns-prefetch” href=”http://www.baidu.com”

這一句各位老哥應該很熟悉了,在head中加入這行代碼就會實現dns預解析。

meta http-equiv=”x-dns-prefetch-control” content=”on”

這一句可能有人見過,在http1.0中,幾乎所有的a標籤連接都是預解析dns的,但是在http1.1中a標籤沒有預解析,所以這一行代碼就是預解析開關。

好了頁面性能優化就說到這,有很多大牛博客把每一種說的都很詳細老哥們可以自己去找找看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章