減小HTTP請求是上面性能準則中最爲顯著的一條,咱們能夠分爲三個主要方面來討論javascript
CDN是一個擁有不少服務器、通過策略性部署的、能夠覆蓋全球的網絡系統,當用戶訪問一個比較大的網站時,CDN會從最近的一個節點爲用戶提供服務。可是動態數據的處理最好放在集中的服務器中,由於跨地域同步數據庫是一個令開發者頭痛的問題,全部大多數互聯網公司都把購買、登錄等數據相關的事物放到一個地方處理。另外,CDN服務是很貴的,若是網站的流量值得去付出這麼多錢,它無疑會給性能帶來提高。css
咱們使用javascript給空的src賦值時,javascript放在文檔的最後,此時雖然src是空的仍然會發出一個HTTP請求。當咱們點擊一個空的href屬性的連接時,一樣會發出一個HTTP請求,雖然這個HTTP請求不會有影響加載時間可是會給服務端形成必定的流量浪費。咱們能夠建立一個帶有描述性信息的很href屬性,並阻止此次HTTP請求
<a href="#SometingDescriptive" id="TriggerName">TriggerName</a> <script type="text/javascript"> $("#TriggerName").click(function (e) { e.prventDefaulet(); // 取消默認行爲 ... }); </script>
另外,空的src和href也是會產生報錯的html
增長了過時頭以後瀏覽器便會緩存這些文件,當用戶第二次訪問這個網站的時候就不會再像服務端請求這個文件。關於緩存的詳細介紹能夠點這裏java
HTTP協議1.1引入了Accept-Encoding這個功能(代表HTTP請求的內容是壓縮過的),GZIP就是其中的一種壓縮方式,它是如今壓縮比率最高的,據雅虎的統計它減少了大約70%的響應大小。它不只僅會減少文件傳輸時間,同時也節省了帶寬。數據庫
瀏覽器並不會等所有HTML解析完成以後才渲染元素,而是同時進行,把css放到前面就會保證先渲染的那一部分元素的顯示樣式是正確的,這麼寫在性能方面也有很大的意義,你毫不但願引發大量的瀏覽器重繪。若是你的樣式文件放到頁面的底部,那麼瀏覽器就會等全部文件都加載完纔會繪製頁面,那麼用戶頗有可能盯着白屏一長段時間,瀏覽器
腳本會阻止並行加載(link支持最大限度的並行加載),也就是說,當瀏覽器加載一個腳本的時候時,它不會加載其餘文件。若是腳本在頭部那他會阻止頁面的渲染。咱們能夠用script標籤上的DRFFER屬性通知瀏覽器去異步的加載其餘文件,可是這麼作會出現兩個問題。緩存
關於這個問題能夠去我博客園的 博客 來查看。服務器