1. 程式人生 > >網頁載入速度緩慢的原因分析

網頁載入速度緩慢的原因分析



分析工具:

 (3)google chrome的page speed 外掛

參考文章:

使用者開啟網頁的速度慢,是因為其中某個環節出了問題,或者不夠優化。簡要總結下網頁開啟速度慢的原因,主要有以下幾點:

一、網路最小頻寬

這是最主要的因素,也就是網友經常說的寬頻不夠。同樣的網站,如果寬頻高,訪問速度就會明顯變快。

網路的頻寬包含網站地點伺服器頻寬和使用者端頻寬兩個方面,對接點指的是出口端與進口端(如電信對網通的對接點)。

二、DNS解析速度

DNS解析是從域名到IP的解析。人們習慣記憶域名,但機器間互相只認IP地址,域名與IP地址之間是對應的,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析伺服器來完成。

DNS解析包括往復解析的次數及每次解析所花費的時間,它們兩者的積即是DNS解析所耗費的總時間。許多人無視了DNS解析的因素,其實它對網站解析速度也是十分重要的。

三、伺服器及客戶端硬體配置

相同的網路環境下,雙核的伺服器的運算能力必定要強一些。同樣在客戶端,相同的網路環境下,你用一臺配置英特爾i7處理器和i3處理器來開啟相同的頁面,速度也一定不一樣。

四、伺服器軟體

在伺服器端,安裝軟體的數量以及執行是否穩定都會影響到伺服器環境,進而影響到網路速度。例如伺服器配置軟體防火牆,就會導致網路速度受影響。

五、頁面內容

如果網頁包含大量未經處理的圖片,而這些圖片很大,就會導致開啟速度變慢。其他如Flash和影視檔案,都會影響訪問速度。

同時冗餘程式碼也是拖慢網站速度的因素之一。站長需要儘量優化程式碼,用最少的程式碼,實現最佳的效果。

六、資料庫操作

小網站做資料庫操作也會影響網站速度,尤其是同時有許多使用者提交評論時,就會發生操作資料庫鎖死,致使網站打不開。

七、使用javascript特效

網站上運用javascript特效是大忌,不只是無法被搜尋引擎抓取,還會因為不斷向伺服器提出請求,導致新增伺服器負擔,網站變慢。

具體的例子如滑鼠特效、節目的特效、狀態列的特效等等。這些特效的原理是先由伺服器下載到使用者端的機器,然後在本地機器上運轉,最終被使用者看到。特效做的多了,使用者本地機器上就要運轉大半天才幹悉數完成。

css,js該合併的合併。

八、過多引用其他網站內容

例如引用其他網站的影象、視訊檔案等。如果連結到的網站速度慢,甚至那家網站已經不存在了,那麼使用者開啟網頁的速度就會十分慢。

 九、後端問題

 請求過長、請求個數過多,某個請求耗費時間過長(概率比較大的幾個可能是:a)資源在第三方站點上,他們很慢;b)這個資源太大了;c)這個資源使用的域名有問題。)。

           十、網路問題

當網頁載入很慢的時候,應如何分析其原因並解決問題?

仔細看一下一個單獨的http請求,他們會分為好幾段,分別是域名解析、建立連線、傳送請求、等待響應和接收資料幾個階段。理論上域名解析和建立連線應該佔用的時間很小才對,主要的時間應該用在後面幾個階段上。上圖中,淺灰色和灰色分別代表域名解析和建立連線,可以看出這兩個請求中花費在網路層上的時間太長了,超過總時間的一半還要多。網路層時間過長除了可能和底層網路有關之外,還可能和站點的服務端效能有關(後端RD的事情哦)。當然,如果這種情況發生在向第三方站點發送的請求上(實際上也經常發生),你就可以建議妹子取消或者更換某些站點功能從而避免這樣的請求了。

         十一、接收資料時間過長

上面說了,http請求的大部分時間應該花在後面幾個階段,比如等待響應和接收資料。但是,如果接收資料的時間太長了,長到數百毫秒甚至以秒計算的時候,那也是有問題的。這種情況一般是因為下載的內容太重了,例如大圖片、大指令碼等。這類問題可以使用GZIP壓縮、圖片壓縮或者JS/CSS的minify等手段來解決。

         十二、js阻塞請求

當網頁載入很慢的時候,應如何分析其原因並解決問題?

圖中兩個連續的請求之間出現了一個很大的空隙,為啥會出現這個空隙呢?可能是因為寫的js效能有問題,解析執行js花了很長時間,導致這段時間的資源載入都被阻塞住了。

他還有一些因素,例如我國的寬頻網路存在互聯互通的問題,國內南北方伺服器互訪會出現延時現象,直接影響使用者的網頁訪問體驗。所以就有很多企業在選擇網站空間的時候會盡量選擇雙線或者多線的伺服器。