我們都清楚,網(wǎng)頁(yè)的打開(kāi)速度十分重要,如果網(wǎng)頁(yè)打開(kāi)時(shí)間超過(guò)8秒,那么訪客將減少60%。所以,我們需要對(duì)網(wǎng)頁(yè)進(jìn)行優(yōu)化,以便能夠達(dá)到最佳的用戶體驗(yàn)。
下面是18條網(wǎng)站加速方法:
1、減少HTTP請(qǐng)求
圖片、css、script、flash等等這些都會(huì)增加http請(qǐng)求數(shù),減少這些元素的數(shù)量就能減少響應(yīng)時(shí)間。把多個(gè)JS、CSS在可能的情況下寫(xiě)進(jìn)一個(gè)文件,頁(yè)面里直接寫(xiě)入圖片也是不好的做法,應(yīng)該寫(xiě)進(jìn)CSS里,利用 CSS sprites 將小圖拼合后利用background來(lái)定位。
2、設(shè)置頭文件過(guò)期或者靜態(tài)緩存
瀏覽器會(huì)用緩存來(lái)減少http請(qǐng)求數(shù)來(lái)加快頁(yè)面加載的時(shí)間,如果頁(yè)面頭部加一個(gè)很長(zhǎng)的過(guò)期時(shí)間,瀏覽器就會(huì)一直緩存頁(yè)面里的元素。不過(guò)這樣如果頁(yè)面里的東西變動(dòng)的話就要改名字了,否則用戶端不會(huì)主動(dòng)刷新,看自己衡量了~ 這項(xiàng)可以通過(guò)修改.htaccess文件來(lái)實(shí)現(xiàn)。
3、Gzip壓縮
Gzip格式是一種很普遍的壓縮技術(shù),幾乎所有的瀏覽器都有解壓Gzip格式的能力,而且它可以壓縮的比例非常大,一般壓縮率為85%。壓縮沒(méi)壓縮,可以到這里測(cè)試:gzip壓縮檢測(cè)。
4、不要在HTML中縮放圖片
圖片要用多大的就用多大的,1000X1000的圖片被width=”100″ height=”100″以后,本身的KB數(shù)是不會(huì)減少的。
5、優(yōu)化圖片
將你的GIF轉(zhuǎn)為PNG8會(huì)是個(gè)減小體積的好辦法,另外有很多方法處理你的JPG及PNG圖片以達(dá)到優(yōu)化效果。
6、不要出現(xiàn)404頁(yè)面
站點(diǎn)本身里(非搜索結(jié)果)出現(xiàn)404頁(yè)面,無(wú)意義的404頁(yè)面會(huì)影響用戶體驗(yàn)并且會(huì)消耗服務(wù)器資源。
7、減小Cookie
Cookie在服務(wù)器及瀏覽器之間的通過(guò)文件頭進(jìn)行交換,盡可能減小Cookie體積,設(shè)置合理的過(guò)期時(shí)間,能夠很好的提高效率。
8、減少iframe數(shù)量
需要更有效的利用 ifames。
iframe 優(yōu)點(diǎn):有利于下載緩慢的廣告等第三方內(nèi)容,安全沙箱,并行下載腳本
iframe 缺點(diǎn):即使為空也會(huì)有較大資源消耗,會(huì)阻止頁(yè)面的onload,非語(yǔ)義
9、盡早的釋放緩沖
當(dāng)用戶進(jìn)行頁(yè)面請(qǐng)求時(shí),服務(wù)器端需要花費(fèi)200到500毫秒時(shí)間來(lái)拼合HTML,將寫(xiě)在head與body之間,釋放緩沖,這樣可以將文件頭先發(fā)送出去,然后再發(fā)送文件內(nèi)容,提高效率。
10、刪除重復(fù)腳本
重復(fù)調(diào)用的代碼瀏覽器并不會(huì)識(shí)別忽略,而是會(huì)再次運(yùn)算一遍,這當(dāng)然是大大的浪費(fèi)。
11、減小JS和CSS的體積
寫(xiě)JS和CSS都是有技巧的,用最少的代碼實(shí)現(xiàn)同樣的功能,減少空白,增強(qiáng)邏輯性,用縮寫(xiě)方式等等,當(dāng)然也有不少工具也能夠幫你實(shí)現(xiàn)這一點(diǎn)。
12、減少DNS查找
減少網(wǎng)站從外部調(diào)用資源,網(wǎng)頁(yè)加載效率會(huì)大大提高。
13、將JS和CSS外鏈
一些較為公用的JS和CSS,我們可以使用外鏈的形式,譬如我就是從Google外鏈來(lái)的Jquery文件,如果我的瀏覽者在瀏覽別的使用了這個(gè)外鏈文件的網(wǎng)站時(shí)已經(jīng)下載并緩存了這個(gè)文件,那么他在瀏覽我的網(wǎng)站的時(shí)候就不需要再進(jìn)行下載了!
14、避免CSS表達(dá)式
CSS表達(dá)式很可怕,這個(gè)只被IE支持的東西執(zhí)行時(shí)候的運(yùn)算量非常大,你移動(dòng)一下鼠標(biāo)它都要進(jìn)行重計(jì)算的,但有時(shí)候?yàn)榱俗鰹g覽器的兼容必須要用到這個(gè)||| IE6去死去死!
15、把CSS放頂部
讓瀏覽者能盡早的看到網(wǎng)站的完整樣式。
16、把JS放底部
網(wǎng)站呈現(xiàn)完畢后再進(jìn)行功能設(shè)置,當(dāng)然這些JS要在你的加載過(guò)程中不影響內(nèi)容表現(xiàn)。
17、用GET方式進(jìn)行AJAX請(qǐng)求
Get 方法和服務(wù)器只有一次交互(發(fā)送數(shù)據(jù)),而 Post 要兩次(發(fā)送頭部再發(fā)送數(shù)據(jù))。
18、減少DOM的訪問(wèn)次數(shù)
JS訪問(wèn)DOM是很慢的,盡量不要用JS來(lái)設(shè)置頁(yè)面布局。
針對(duì)以上的影響因素,webkaka推出了網(wǎng)站速度診斷,會(huì)自動(dòng)掃描網(wǎng)頁(yè)元素,對(duì)網(wǎng)頁(yè)性能優(yōu)化給出相應(yīng)的建議,強(qiáng)烈推薦使用。