我正在使用CloudFront,很多時候我看到「等待時間」和「接收時間」太高。如何在頁面加載中減少「等待時間」和「接收時間」
根據螢火蟲文件,等待時間和接收時間是指:
等待 - 等待來自
接收所述服務器的響應 - 讀取整個 響應所需/(從高速緩存)時間從(從緩存中讀取所需的和/或時間)服務器
我不明白爲什麼花費這麼多時間和我能做些什麼來減少時間?
我正在使用CloudFront,很多時候我看到「等待時間」和「接收時間」太高。如何在頁面加載中減少「等待時間」和「接收時間」
根據螢火蟲文件,等待時間和接收時間是指:
等待 - 等待來自
接收所述服務器的響應 - 讀取整個 響應所需/(從高速緩存)時間從(從緩存中讀取所需的和/或時間)服務器
我不明白爲什麼花費這麼多時間和我能做些什麼來減少時間?
有許多東西可以做。
Expires
,Cache-control
,資產ETag
等gzip
PED版本。合併您的CSS文件到一個,合併您的JS文件到一個運行您的網站通過WebpageTest.org並通過所有的建議。
通過YSlow運行您的網站,並通過所有的建議
過期和其他人都設置。精靈或無精靈與等待時間或接收時間沒有直接關係!這些時間可以與sprill圖像。雅,但它只會少數。 –
我認爲這都是因爲CloudFront不在印度。現在它在印度,但現在我沒有進入網絡開發。 –
這意味着瀏覽器正在等待服務器處理請求並返回響應。
如果時間很長,通常意味着您的服務器端腳本需要很長時間來處理請求。
服務器端腳本緩慢的原因有很多,例如,長時間運行的數據庫查詢,處理大文件,深度遞歸等。
要解決這個問題,您需要優化腳本。除了優化代碼本身之外,簡單的方法是減少後續請求的執行時間,以實現某種服務器端緩存。
這意味着瀏覽器正在接收來自服務器的響應。
當這段時間很長時,這意味着您的網絡連接速度較慢或接收的數據太大。
爲了縮短這個時間,您需要改善網絡連接和/或減小響應的大小。
減小響應大小可以通過壓縮傳送的數據來完成,例如,通過在輸出數據之前啓用gzip
和/或從輸出中刪除不必要的字符(如空格)。在可能的情況下,您也可以爲返回的數據選擇不同的格式。使用JSON而不是XML來處理數據或直接返回HTML。
爲了通常減少等待和接收時間可能會實現一些客戶端緩存,例如通過設置適當的HTTP標頭,如Expires
,Cache-Control
等。然後,瀏覽器只會發出相當小的請求來檢查是否有新版本的數據要獲取。
您還可以通過將數據保存在客戶端(例如,將其放入本地或會話存儲)完全避免請求,而不是在每次需要時從服務器獲取數據。
這可能是由於Apache的反向查找設置:http://stackoverflow.com/a/13672919 –