如何快速判斷一個網(wǎng)站是不是一坨shi

大家有沒有發(fā)現(xiàn)有些網(wǎng)站加載速度特別慢(當(dāng)然自己的站除外:)),雖然功能很簡單,也沒什么圖片,但是就是一個字“慢”,PC上就已經(jīng)夠慢了,別說手機(jī)移動端了,完全慘不忍睹。但如果一個網(wǎng)頁的如果打開速度超過4s,用戶基本就會直接關(guān)閉網(wǎng)頁了。

但一些大站,比如網(wǎng)易搜狐,雖然信息量巨大,圖片巨多,但是加載速度巨快,基本上是ms級的,為什么人家的就這么快呢?

大家可以看下周圍的網(wǎng)站是否有這些問題呢?

1 圖片未壓縮且未使用CDN:如果你看到一個網(wǎng)站上有N多圖,但你即不壓縮又不使用CDN,那么速度絕對會被拖慢。

2 未設(shè)置過期時間:靜態(tài)資源若沒有設(shè)置過期時間會導(dǎo)致不會被瀏覽器緩存,那么每一次都會重新到服務(wù)器重新拉取。

3 外鏈資源過多:如果你的JS或CSS文件很多,而且不做合并的話,由于每一次http請求多會消耗非常多的資源,因此會造成很大的資源浪費(fèi)。

使用YSlow,立馬發(fā)現(xiàn)網(wǎng)站是不是一坨shi。YSlow一個插件,Chrome和Firefox都可以下哦,

瀏覽器輸入地址,然后點(diǎn)擊測試,就可以測試網(wǎng)站啦,這是傳說中的大站,大家請看,

評分為A的大站

下面這個就不是很好啦

評分為D

我們來看看有哪些主要問題

1 HTTP請求過多(Make fewer HTTP request)

F(Fail)了

每一個HTTP請求都要消耗資源,是一個漫長的IO過程,所以,請求數(shù)量越少越好,以上這個例子有19個外部的JavaScript樣式, 13個外部的CSS樣式,如此多的外部引用,每個都會消耗大量的瀏覽器資源,所以我們需要做的是進(jìn)行壓縮合并處理:將所有的JavaScript文件合并成一個,將所有的CSS再合并成一個,這樣,就能大大減少HTTP請求了。常見的合并工具有很多,常見的有compile.js等等。

2 未使用內(nèi)容分發(fā)網(wǎng)絡(luò) Use a Content Delivery Network (CDN)

又 F(Fail)了

CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))是通過在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器,然后你請求某個資源時,這個虛擬網(wǎng)會把離你最近的資源分配給你。網(wǎng)絡(luò)中最浪費(fèi)流量的就是圖片資源了,小則十幾K,多則上百K,所以,如果圖片不錯CDN,將非常影響加載速度。國內(nèi)常用的CDN有阿里云、七牛啥的,這里可以推薦大家使用七牛,因?yàn)樵诹髁啃〉那闆r下,他是完全免費(fèi)的。

3 過期時間 (add expired headers)

過期時間

瀏覽器中都會有一個過期時間,通過Cache-Control首部和Expires首部來控制,比如我設(shè)為3天,那么在3天內(nèi),你訪問這個靜態(tài)網(wǎng)站時,都會直接從瀏覽器緩沖中獲取,如果不設(shè)Cache-Control的話,那么每次就將會向服務(wù)器取數(shù)據(jù)。

4 JavaScript必須放到最后

這個想把大家都知道,引用的JavaScript文件必須放到HTML文件的最后。原因是因?yàn)闉g覽器的加載原理,瀏覽器當(dāng)中有一個叫“首屏?xí)r間”,所謂的首屏?xí)r間是網(wǎng)頁第一次顯示出來的時間,注意這個時間并不是網(wǎng)頁完全加載完畢的時間。因?yàn)闉g覽器是線性加載,只有在HTML元素全部加載完畢之后才會顯示,那么如果把JS放到前面的話,會導(dǎo)致必須加載完所有的JS代碼,會大大影響加載速度。

5 使用gZip壓縮

這個想必大家都知道,服務(wù)器端的靜態(tài)資源是能夠使用gZip壓縮的,只要在服務(wù)器中設(shè)置一下即可,壓縮之后靜態(tài)資源會至少縮小30%左右。

6 使用懶加載

無論如何,圖片還是太影響網(wǎng)頁加載速度了,比如10張圖片,全部加載的話可能要10秒,但是如果首頁只有2張圖的話,只顯示2張圖片,那么就是2秒了。懶加載組件有很多現(xiàn)成的,在github上搜索mlazy即可。

這是最實(shí)用的6個方法了,常見的優(yōu)化方式有yahoo的35條軍規(guī),大家可自行搜索

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,335評論 25 708
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,801評論 1 92
  • 網(wǎng)站優(yōu)化離不開前后端的互相協(xié)作,但是對于前端工程師來說,在保證后端技術(shù)方案不變時,能不能只利用前端技術(shù)來優(yōu)化網(wǎng)站呢...
    留七七閱讀 6,382評論 0 31
  • 有沒有過這樣的經(jīng)歷:人生很多大事是倉促之間決定的。為一個事精挑細(xì)選了很久,可是臨到頭解決,決定的時候非常倉促。 想...
    mylkevin閱讀 366評論 0 0
  • 作為一名混跡iOS開發(fā)圈近4年的碼農(nóng),資歷不深不淺,看到這個問題還是忍不住想回答一下。 如果你打算學(xué)習(xí)iOS開發(fā),...
    阿道奇閱讀 3,102評論 2 22