爲了減少加載時間,可以對網站進行哪些重要優化?減少網站加載時間的優化
回答
刪除/最小化服務器端的瓶頸。爲此,請使用Xdebug或Zend Debugger之類的分析器來查找應用程序執行的代價高昂且運行緩慢的情況。儘可能實現緩存。使用OpCode緩存。如果這仍然不夠快,考慮投資更多的CPU或RAM或SSD(取決於您是CPU,IO還是內存綁定)
對於一般服務器/客戶端優化,請參閱Yahoo YSlow! User Guide。
它基本上概括起來到:
- 儘量減少HTTP請求
- 使用內容傳送網絡
- 添加過期或者緩存控制頭
- Gzip已零部件
- 將樣式表放在頂部
- 將腳本放在最下面
- 避免CSS表達式
- 使JavaScript和CSS外部
- 減少DNS查找
- 壓縮JavaScript和CSS
- 避免重定向
- 刪除重複的腳本
- 配置的ETag
- 讓AJAX可緩存
- 使用GET進行AJAX請求
- 減少DOM元素的數量
- 沒有404
- 減少餅乾大小
- 使用Cookie的免費域名爲組件
- 避免使用濾鏡
- 不要放大圖像在HTML
- 讓小的favicon.ico並且可緩存
另請參見下面的評論作出了貢獻,因爲它們包含一些一其他用戶的附加有用信息。
還檢查了谷歌」的PageSpeed HTTP:/ /code.google.com/speed/page-speed/是YSlow的一個很好的替代/補充,也是一個Firebug插件。它捕捉到YSlow不能做的一些事情,反之亦然。 – 2010-03-01 22:29:16
還有一件事:如果您控制足夠的服務器來安裝額外的插件並具有足夠的RAM,則使用內存中會話。 memcache插件包含一個會話處理程序。 http://php.net/memcache – Powerlord 2010-03-01 22:31:47
很好的答案。所有這些事情都在這個(優秀的)雅虎文章中有更詳細的解釋:http://developer.yahoo.com/performance/rules.html – 2010-03-01 22:34:20
這裏有一些 「最佳實踐」 的事情:
- 緩存CSS,JavaScript,圖片等
- 縮小JavaScript文件。
- gzip內容。
- 儘可能在頁面底部放置指向JavaScript文件,JavaScript代碼和CSS文件的鏈接的鏈接。
- 只加載需要的東西。
- 對於現有的網站,在你做任何這些事情之前,要確定你的瓶頸在哪裏,像Firebug這樣的工具,以及其他人提到的YSlow(我強烈推薦這個工具)。
有兩個方面優化的時候,你可以關心,:
- 服務器端:重要的是產生的輸出中更快
- 客戶端:重要的是讓所有的有顯示得更快。
注意:作爲開發人員,我們經常首先考慮優化服務器端......在大多數情況下,這隻佔頁面加載時間的不到10%!
在服務器端,你通常要:
- 曲線,以確定什麼是長
- 優化您的SQL查詢,並減少其數量
- 使用緩存
欲瞭解更多信息,你可以看看我前一段時間給這個問題的答案:Optimizing Kohana-based Websites for Speed and Scalability
在客戶端,最大的收益一般是通過實現:
- 減少HTTP請求的數量 - 最簡單的方法是減少的JS/CSS /圖像文件的數量,由將幾個文件合併成一個文件
- 壓縮CSS/JS/HTML,例如使用Apache的
mod_deflate
。
有關,對Yahoo's Exceptional Performance了很多偉大的東西:他們已經發布了大量的good pratices和工具,如yslow。
我能想到的最簡單的選項是:
- Gzip已(X)HTML,所以壓縮文件應該更迅速地向用戶
- 到達縮小的CSS
- 縮小的JS
- 使用緩存儘可能
- 使用內容傳遞網絡
- 使用工具,如yslow識別瓶頸和進一步的建議
@bn的確的編輯,以糾正。謝謝=] – 2010-03-01 23:11:57
肯定想看看緩存,因爲往返數據庫是昂貴的。 also,minify JS
要減少網絡流量,可以縮小靜態文件(如CSS和Javascript),並對生成的內容使用gzip壓縮。您也可以嘗試使用optipng等工具來縮小圖像的大小。
但是,要採取的第一步是實際分析需要花費的時間 - 無論是通過網絡發送位,還是實際生成要發送的內容。如果需要一分鐘來生成每個HTML頁面,那麼將CSS文件縮小10%是沒有意義的。
第一個優化是:決定它是否緩慢,如果不是,請不要打擾。
這比聽起來更棘手,因爲它不像測試桌面應用程序或遊戲。如果在目標硬件上播放遊戲,遊戲速度會很慢,幀速率太低。這很容易衡量。
一個網站更棘手,因爲作爲開發人員,您可能正在使用本地測試系統和非常快速的網絡。即使使用登臺/系統測試服務器,您仍可能仍在本地網絡中。即使你的生產服務器很可能在同一大陸。
對於很多用戶來說,情況可能並非如此。
因此其存在的選項有:
- 找出通過詢問用戶,是否覺得它是慢
- 模擬高延遲的環境和自己(或您的QA團隊)測試
- 猜測
後者不建議。
一個比你的雅虎網站性能書(這是一本你可以購買的書)更不用提的很多HTTPS選項。大多數處理重要數據的Web應用程序主要或完全通過HTTPS運行,這更改了遊戲規則。記住要啓用所有測試。
安裝螢火蟲和插件的PageSpeed如下 所有的PageSpeed指令(至可能的),而且要快樂 http://code.google.com/intl/it/speed/page-speed/
反正在我的經驗中最重要提示優化是HTTP請求的數量減少到最低限度?
不要在代碼中使用空格。
我們最近在我們的網站上做了這個。在這裏,我們列出9項技術,似乎有與至少難度最高的影響:http://mentormate.com/blog/easy-ways-speed-website-load-time/
我寫了一些東西,請參見:
前面已經提到的,你可以使用YSlow的或的PageSpeed火狐延期。但是您也可以使用GTmetrix,這是一款使用這兩種工具掃描頁面的在線服務。
特點我喜歡/用途:
- 柔軟,清潔,可用presention
- 與其他網頁進行比較。看看你的朋友/競爭者在哪裏真的很有趣。
(順便說一句,我沒有相關gtmetrix!)
- 1. 圖像優化減少加載時間?
- 2. 減少網頁的加載時間
- 3. 如何減少我的網站的javascript/jquery/ajax加載時間?
- 4. 縮小/緩存後減少網站的加載時間
- 5. 減少wordpress中的網站加載時間
- 6. 我會如何減少wordpress網站的加載時間?
- 7. 有效減少網站加載時間[SEO的角度來看]
- 8. 減少PhoneGap加載時間
- 9. 減少網站等候時間
- 10. 減少加載UIView的時間延遲
- 11. 如何減少SSH2的「加載」時間
- 12. 我的WordPress的網站需要很長時間來加載如何減少它?
- 13. 爲網站加載最優化測試
- 14. 如何減少使用WKWebView的應用程序網站加載時間?
- 15. 網站優化減少Img對象請求
- 16. 如何從網站加載圖片時減少內存?
- 17. 使用pdf.js減少PDF加載時間
- 18. 減少圖像加載時間?
- 19. 如何減少Docx4j加載時間
- 20. Mysql查詢減少加載時間
- 21. 在日曆上減少加載時間
- 22. 腳本加載時間減少
- 23. 減少小程序加載時間
- 24. 減少VS201X構建/加載時間
- 25. 減少圖像加載時間
- 26. 網站加載時間
- 27. Wordpress網站加載時間
- 28. 可以Javascript錯誤減緩網站的加載時間
- 29. .woff在優化的網站上導致8-12秒的加載時間
- 30. 如何減少社交網絡元素加載時間?
我所有的時間最愛http://www.alistapart.com/articles/sprites – Ally 2010-03-01 22:29:02