2009-02-05 69 views
1

我想改善網站的頁面加載時間。這是一個網絡應用程序(想象的是類似網絡郵件),相對較少的用戶花費很長時間使用該網站。如何加快瀏覽器緩存大多數頁面資源的網站

由於幾乎所有的頁面請求都來自已經使用過該網站的用戶,因此以前的請求中瀏覽器將緩存圖像,CSS和外部JavaScript資源。由於瀏覽器不需要再次請求這些資源,我說的對,下面的性能提示不會給我響應速度的任何改進?:

  • CSS精靈
  • 圖像的並行下載使用替代域名
  • 放置的Javascript在網頁的底腳包括

沒有人有可能縮短響應時間對於這類網站的任何性能的技巧。

回答

0

我認爲你需要做一些分析。首先確定您希望支持的所有瀏覽器實際上是否會緩存您希望緩存的內容(如果需要,請在請求期間檢查您的網絡流量)。有些瀏覽器具有有趣的緩存規則。如果這裏有任何問題,請修復它們!

接下來,檢查正在檢索每個請求的內容。如果您的HTML/CSS/Javascript不必要地冗長,那麼它會發送更多數據,併爲客戶端處理更多數據。

查看服務器端,網絡端和客戶端的時序。查看服務器提供靜態文件所需的時間以及腳本運行的時間。查看服務器和客戶端之間的往返時間是否合理低(在某些情況下,您可能需要重新定位服務器)。還要確保您的網頁在客戶端的渲染速度不慢,無論是由於腳本速度慢,內容過多或渲染複雜。

0

要真正瞭解客戶的情況,您需要使用Wireshark(或同等功能)來查看發生了什麼轉移。這會準確地告訴你客戶端在第一次和後續請求中獲取的內容以及哪些請求需要很長時間才能接收客戶端。

1

您所說的是,該網站已經在客戶端緩存中,因此在下載一次後,後續加載時間將忽略不計,您將如何進行優化?

在這種情況下,我可以提出一些建議。首先,減少到服務器的HTTP請求數量。這意味着:

  1. 如果客戶想要到服裝>男裝>鞋子,使用飛出菜單來幫助他們更快到達那裏(除非你想強制風景秀麗的路線)。
  2. 將所有內容加載到相同的HTTP請求中(一次性重複用戶),然後用戶JS根據需要隱藏/顯示信息。

其次,您可以使用AJAX,以便客戶端在每次從服務器響應時都不必重新繪製整個屏幕。

第三,您可以設置高緩存到期時間,以便客戶端不會很快檢查更新。這將進一步優化已經存在的緩存層。

順便說一句,即使圖像已被緩存,我仍然認爲將它們託管在不同的服務器上會帶來更好的性能。原因是瀏覽器限制了來自一個域的並行下載數量,並且仍然需要檢查圖像是當前還是過期(使用HEAD請求)。因此,將它們託管在多個域中可以更快地完成這部分任務。儘管這裏可能是錯誤的,並且瀏覽器可能以不同的方式處理這個特定的場景。

相關問題