2013-10-05 140 views
6

我正在使用CloudFront,很多時候我看到「等待時間」和「接收時間」太高。如何在頁面加載中減少「等待時間」和「接收時間」

根據螢火蟲文件,等待時間和接收時間是指:

等待 - 等待來自

接收所述服務器的響應 - 讀取整個 響應所需/(從高速緩存)時間從(從緩存中讀取所需的和/或時間)服務器

我不明白爲什麼花費這麼多時間和我能做些什麼來減少時間?

enter image description here

+0

這可能是由於Apache的反向查找設置:http://stackoverflow.com/a/13672919 –

回答

2

有許多東西可以做。

  1. 設置相應的頭ExpiresCache-control,資產
  2. 用戶精靈在可能的ETag
  3. 使用gzip PED版本。合併您的CSS文件到一個,合併您的JS文件到一個

運行您的網站通過WebpageTest.org並通過所有的建議。

通過YSlow運行您的網站,並通過所有的建議

+1

過期和其他人都設置。精靈或無精靈與等待時間或接收時間沒有直接關係!這些時間可以與sprill圖像。雅,但它只會少數。 –

+0

我認爲這都是因爲CloudFront不在印度。現在它在印度,但現在我沒有進入網絡開發。 –

1

等待

這意味着瀏覽器正在等待服務器處理請求並返回響應。

如果時間很長,通常意味着您的服務器端腳本需要很長時間來處理請求。

服務器端腳本緩慢的原因有很多,例如,長時間運行的數據庫查詢,處理大文件,深度遞歸等。

要解決這個問題,您需要優化腳本。除了優化代碼本身之外,簡單的方法是減少後續請求的執行時間,以實現某種服務器端緩存。

接收

這意味着瀏覽器正在接收來自服務器的響應。

當這段時間很長時,這意味着您的網絡連接速度較慢或接收的數據太大。

爲了縮短這個時間,您需要改善網絡連接和/或減小響應的大小。

減小響應大小可以通過壓縮傳送的數據來完成,例如,通過在輸出數據之前啓用gzip和/或從輸出中刪除不必要的字符(如空格)。在可能的情況下,您也可以爲返回的數據選擇不同的格式。使用JSON而不是XML來處理數據或直接返回HTML。

通常

爲了通常減少等待和接收時間可能會實現一些客戶端緩存,例如通過設置適當的HTTP標頭,如Expires,Cache-Control等。然後,瀏覽器只會發出相當小的請求來檢查是否有新版本的數據要獲取。

您還可以通過將數據保存在客戶端(例如,將其放入本地或會話存儲)完全避免請求,而不是在每次需要時從服務器獲取數據。

相關問題