文本內容、圖片內容的優化都是基於自己大小的,但有一個更基礎的方案能夠實施,就是減小這些資源的下載頻率。css
減小資源個數,就能夠減小HTTP請求個數。html
每一個文件都須要發起一個HTTP請求,每一個請求會消耗必定的時間,合併這些文件就能提高頁面的加載速度。html5
CSS比較特殊,是層疊樣式,同一個選擇器不會報錯和拋出異常,而是能正常運行,後者覆蓋前者。但有時候這個會跟咱們預期不一致,因此建議給一些特別的樣式加特定的類名。以下:node
h2 { font-size: 1em; color: #000080; } /* master stylesheet */ h2 { font-size: 2em; color: #ff0000; } /* Marketing stylesheet(避免使用) */ section.product h2 { font-size: 2em; color: #ff0000; } /* Marketing stylesheet(推薦) */
合併文本資源對於減小HTTP請求數頗有效,不過這樣作的時候也要當心,後面會介紹一些注意事項。web
圖片和文本同樣,也能夠經過合併的方式來減小HTTP請求數。緩存
雖然這個方法能夠適用於任意圖片,但咱們最經常使用的仍是合併小圖標,爲這些小圖標發起多個HTTP請求實在是一種浪費。服務器
咱們能夠用CSS的background-position屬性來展現相應的圖片——俗稱"精靈圖"。CSS重定位很是快速、無縫,不用擔憂抖動問題。dom
你可能會有一系列的社交網站圖標,比起下載3個單獨的圖片,合併成一張圖片會更合適,以下:函數
如下是CSS的示例:性能
a.facebook { display: inline-block; width: 64px; height: 64px; background-image: url("socialmediaicons.png"); background-position: 0px 0px; } a.twitter { display: inline-block; width: 64px; height: 64px; background-image: url("socialmediaicons.png"); background-position: -64px 0px; } a.pinterest { display: inline-block; width: 64px; height: 64px; background-image: url("socialmediaicons.png"); background-position: -128px 0px; }
"facebook"的類裏的"background-position"屬性其實是能夠省略的,但此處爲了保持一致性,因此保留。
咱們假設全部的CSS和JavaScript資源都是存在於單獨的文件,這也是最優的作法。腳本的加載是個巨大複雜的流程,詳情能夠參考這篇文章 Deep Dive Into the Murky Waters of Script Loading。有如下兩個點值得注意:
內聯腳本主要是解決兩個問題:
<h1>Our Site</h1> <h2 id="greethead">, and welcome to Our Site!</h2> <script> //insert time of day greeting from computer time var hr = new Date().getHours(); var greeting = "Good morning"; if (hr > 11) { greeting = "Good afternoon"; } if (hr > 17) { greeting = "Good evening"; } h2 = document.getElementById("greethead"); h2.innerHTML = greeting + h2.innerHTML; </script> <p>Blah blah blah</p>
本文主要介紹了下降HTTP請求次數的一些方法,考慮了文本和圖片兩種資源。減小與服務器的交互次數,能夠幫咱們節省時間,加速頁面的加載,讓用戶能夠更快的看到內容。