1. 程式人生 > >前端效能優化之n種方法

前端效能優化之n種方法

小編推薦:Fundebug專注於JavaScript、微信小程式、微信小遊戲,Node.js和Java實時BUG監控。真的是一個很好用的bug監控費服務,眾多大佬公司都在使用。

前端效能優化有很多種,我們在實際工作中或許也就用到那麼幾種。但是,在面試的時候,知道的不知道的,要說很多種,下面是我在工作學習中遇到的,不全,希望大家補充。

1、減少HTTP請求。

儘量合併圖片、CSS、JS。比如載入一個頁面,如果有5個css檔案的話,那麼會發出5次http請求,這樣會讓使用者第一次訪問你的頁面的時候會長時間等待。而如果把這個5個檔案合成一個的話,就只需要發出一次http請求,節省網路請求時間,加快頁面的載入。

2、把CSS放到頂部

因為網頁上的資源載入時從上網下順序載入的,所以css放在頁面的頂部能夠優先渲染頁面,讓使用者感覺頁面載入很快。

3、把JS放到底部

js載入時同步載入,會對後續的資源造成阻塞,必須得等js載入完才去載入後續的檔案 ,所以就把js放在頁面底部最後載入。

4、將CSS和JS放到外部檔案中

目的是快取檔案。 但有時候為了減少請求,也會直接寫到頁面裡,需根據PV和IP的比例權衡。

5、精簡CSS和JS

這裡就涉及到css和js的壓縮了。比如一個css檔案,把檔案內的空格回車全部去掉,減少檔案的大小。grunt,glup都可以壓縮css、js檔案。
gulp的使用方法在我的專欄-

gulp學習筆記,圖文並茂,有需要的可以移步。

6、刪除重複的JS和CSS

重複呼叫指令碼,除了增加額外的HTTP請求外,多次運算也會浪費時間。在IE和Firefox中不管指令碼是否可快取,它們都存在重複運算JavaScript的問題。

7、css選擇符優化

因為css是從右向左解析的,根據這個規則,儘量使右邊的樣式唯一

8、避免空的src和href

當link標籤的href屬性和script標籤的src屬性為空時候,瀏覽器渲染的時候會把當前頁面的URL作為它們的屬性值,從而把頁面的內容載入進來作為它們的值。所以要避免犯這樣的疏忽。

9、將CSS和JS放到外部檔案中

這樣做的目的是快取檔案 但有時候為了減少請求,也會直接寫到頁面裡,需根據PV和IP的比例權衡。

10、縮小favicon.ico並快取

11、避免使用CSS表示式

舉個css表示式的例子

font-color:expression((new Date()).getHours()%3 ? "#fff" : "#aaa");

這個表示式會持續的在頁面上計算樣式,影響頁面的效能。並且css表示式只被IE支援。

12、快取AJAX請求

非同步請求同樣的造成使用者等待,所以使用ajax請求時,要主動告訴瀏覽器如果該請求有快取就去請求快取內容。如下程式碼片段, cache:true就是顯式的要求如果當前請求有快取的話,直接使用快取
非同步請求同樣的造成使用者等待,所以使用ajax請求時,要主動告訴瀏覽器如果該請求有快取就去請求快取內容。如下程式碼片段, cache:true就是顯式的要求如果當前請求有快取的話,直接使用快取

  $.ajax({
  url : 'url',
  dataType : "json",
  cache: true,
  success : function(son, status){},
  error : function(){}
})

13、使用GET來完成AJAX請求

在安全效能要求允許的情況下,使用GET來完成AJAX請求。當使用XMLHttpRequest時,瀏覽器中的POST方法是一個“兩步走”的過程:首先發送檔案頭,然後才傳送資料。因此使用GET獲取資料時更加有意義。

15、減少DOM操作

因為每次操作DOM,都會帶來repaint和refolw

16、減少Cookie的大小

Cookie裡面別塞那麼多東西,因為每個請求都得帶著他跑。

17、使用CDN

網站上靜態資源即css、js全都使用cdn分發,圖片也一樣。

連結:https://www.jianshu.com/p/340951fd83bf

關於Fundebug

Fundebug專注於JavaScript、微信小程式、微信小遊戲、支付寶小程式、React Native、Node.js和Java實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了9億+錯誤事件,得到了Google、360、金山軟體、百姓網等眾多知名使用者的認可。歡迎免費試用!