2011-06-26 25 views
1

我一直在基於drupal的個人頁面上工作。我注意到它需要永久加載6-10秒鐘。如何加速網頁加載?主要問題是隊列時間

看了一些性能測試後,特別是從site-perf.com, 我注意到加載時間是80%的排隊時間。 enter image description here

它看起來lightbox2和我的主題貢獻約2/3的排隊時間。

有關加快速度的建議嗎?

+0

您確定您正確地閱讀本文。我會假設標題/正文部分與內容本身相關,而隊列也許意味着其他內容? – ChrisBint

+0

嗯,我不知道,看看這個http://site-perf.com/cgi-bin/show.cgi?id=4ZS9FdXvQ2g – madmaze

回答

1

請記住在您的根目錄中的.htaccess文件中緩存和gzip文件。如果沒有一個,做一個,然後添加這段代碼:

#GZIP ---------------------------- 
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/xml 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE text/javascript 
AddOutputFilterByType DEFLATE application/xml 
AddOutputFilterByType DEFLATE application/xhtml+xml 
AddOutputFilterByType DEFLATE application/rss+xml 
AddOutputFilterByType DEFLATE application/javascript 
AddOutputFilterByType DEFLATE application/x-javascript 
<ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file \.(html?|txt|css|js)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 
<ifmodule mod_php4.c> 
php_value zlib.output_compression 16386 
</ifmodule> 

#CACHE ---------------------------- 
<ifModule mod_headers.c> 
    # MONTH 
    <FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf)$"> 
     Header set Cache-Control "max-age=2592000" 
    </FilesMatch> 
    # WEEK 
    <FilesMatch "\.(js|css|pdf|txt|mp4|m4v|ogv|webm|ogg)$"> 
     Header set Cache-Control "max-age=604800" 
    </FilesMatch> 
    # DAY 
    <FilesMatch "\.(html|htm)$"> 
     Header set Cache-Control "max-age=43200" 
    </FilesMatch> 
    # NEVER CACHE 
    <FilesMatch "\.(pl|php|cgi|spl)$"> 
     Header set Cache-Control "max-age=0" 
    </FilesMatch> 
</ifModule> 

一旦你的緩存和gzip壓縮,儘量不平行裝載任何文件合併。如果在開始下載之前發現一個正在等待另一個文件加載的文件,那麼如果可能的話,將這兩個文件合併成一個文件。

+0

這絕對有幫助,但排隊時間還是很長,我試圖結合一些東西。謝謝 – madmaze

+0

添加這個和鞏固JS和CSS與Drupal的性能選項給了我想要的速度 – madmaze

2

當您向頁面添加JavaScript(例如Lightbox或任何其他插件)時,請務必將其解析添加到頁面底部,而不是將它們添加到頁面頭部。

在呈現網頁之前,瀏覽器將解析頭部中的任何內容,因此請記下任何不需要在其中的內容,例如包含或包含在頭部的其他自定義腳本,並僅包含它們在結束標籤之前。

我也注意到,包含了8個js文件(和大量的CSS文件),您可以通過將所有這些javascript代碼放入單個js文件中(並將所有CSS放入單個文件中來縮短渲染時間)幷包括那一個。

請注意,請務必將CSS保留在頁面的頭部,因爲它必須正確呈現網頁。

1

從提到http://site-perf.com/網站報價:

請求正在等待隊列中

通常情況下,瀏覽器不開始 處理的HTTP請求,只要它是 排隊,防止網絡服務器免受 重載。每個主機限制 的同時連接,以及所有連接的總數限制爲 。這些限制 因瀏覽器和瀏覽器而異,而今天的 是每個主機8-10個 個並行請求和總共32-128個 的常見值。

提示:如果您發現很多請求 花費大量的時間在瀏覽器 隊列,你可以考慮增加 主機數量,將有助於這些 請求。你甚至可以創建域 的別名,它們指向同一個IP,並 從同一目錄服務, 因爲瀏覽器看起來只在域 名稱,而不是它的IP應用 連接限制時。但是請記住,那個 每增加一個域就會加上 對應的解析和連接 的延遲,所以3-6這樣的別名相當於 就夠了。

你可以嘗試類似並行模塊 - http://drupal.org/project/parallel - 看看是否會加快你的速度。或者,如果你想要更多的,感覺有點冒險 - CDN - http://drupal.org/project/cdn

我假定你把所有的CSS/JS已經整合?緩存啓用?