這篇文章主要講解了“高性能網(wǎng)站優(yōu)化的規(guī)則有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“高性能網(wǎng)站優(yōu)化的規(guī)則有哪些”吧!
創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元昭平做網(wǎng)站,已為上家服務(wù),為昭平各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
性能黃金法則:
只有10%~20%的最終用戶響應(yīng)時(shí)間花在了下載HTML文檔上。其余的80%~90%時(shí)間花在了下載頁面中的所有組件上。
規(guī)則1 減少HTTP請(qǐng)求
可以通過使用圖片地圖,CSS Sprites(有利有弊),內(nèi)聯(lián)圖片(data:URL模式,IE不支持,不能被緩存),合并腳本和樣式表。
規(guī)則2 使用內(nèi)容發(fā)布網(wǎng)絡(luò)
如果應(yīng)用程序web服務(wù)器離用戶更近,則一個(gè)HTTP請(qǐng)求的響應(yīng)時(shí)間將縮短 ;
如果組件web服務(wù)器離用戶更近,則多個(gè)HTTP請(qǐng)求的響應(yīng)時(shí)間將縮短。
內(nèi)容發(fā)布網(wǎng)絡(luò)(cdn)是一組分布在多個(gè)不同地理位置的web服務(wù)器,用于更加有效地向用戶發(fā)布內(nèi)容。
規(guī)則3 添加Expires頭
web服務(wù)器使用Expires頭告訴web客戶端他可以使用一個(gè)組件的當(dāng)前副本,直到指定的時(shí)間為止。要求服務(wù)器與客戶端的時(shí)鐘嚴(yán)格同步,并且要在時(shí)間過期后在服務(wù)器配置中提供一個(gè)新的日期。
Max-Age和mod_expires可以彌補(bǔ)Expires的不足。
規(guī)則4 壓縮組件
從HTTp1.1開始,
規(guī)則5 將樣式表放在頂部
逐步呈現(xiàn),避免白屏
規(guī)則6 將腳本放在底部
HTTP1.1規(guī)范建議瀏覽器從每個(gè)主機(jī)名并行下載兩個(gè)組件,在下載腳本時(shí),并行下載實(shí)際上是被禁用的。
原因之一是腳本有可能使用document.write來修改頁面內(nèi)容,因此瀏覽器會(huì)等待,以確保頁面能夠恰當(dāng)?shù)夭季郑?br/>原因之二是為了保證腳本能夠按照正確的順序執(zhí)行,如果并行下載多個(gè)腳本,就無法保證響應(yīng)是按照特定順序到達(dá)瀏覽器。
將腳本放在頂部將會(huì)阻塞對(duì)其后面內(nèi)容的呈現(xiàn),并且會(huì)阻塞對(duì)其后面組件的下載。
規(guī)則7 避免CSS表達(dá)式
表達(dá)式expression方法被其他瀏覽器忽略,但是對(duì)于IE來說是一個(gè)有用的工具。能夠在IE中設(shè)置屬性,創(chuàng)建跨瀏覽器的一致體驗(yàn)。例如,IE[IE6,IE7(Quirk),IE8(Quirk]不支持min-width屬性,用表達(dá)式的方法可以解決這一問題:
代碼如下:
width: expression(document.body.clientwidth<600?"600px": "auto");
min-width: 600px;
表達(dá)式的問題在于對(duì)其進(jìn)行的求值的頻率比人們期望的要高。他們不僅在頁面呈現(xiàn)和大小改變時(shí)求值,當(dāng)頁面滾動(dòng)甚至用戶鼠標(biāo)在頁面上移過時(shí)都要求值。我們可以向CSS表達(dá)式中添加一個(gè)計(jì)數(shù)器來進(jìn)行跟蹤。
表達(dá)式計(jì)數(shù)器的實(shí)例:
http://stevesouders.com/hpws/expression-counter.php
代碼如下:
P {
width: expression(setCntr(),document.body.clientwidth<600?"600px": "auto");
min-width: 600px;
}
取代表達(dá)式的方法:事件處理器(Event Handlers)
通過在onresize事件中設(shè)置樣式的width屬性來修正min-width問題。
事件處理器的實(shí)例:
http://stevesouders.com/hpws/event-handler.php
當(dāng)瀏覽器的大小改變時(shí),這個(gè)例子使用setMinWidth()函數(shù)來修改所有段落元素的大小——
代碼如下:
function setMinWidth(){
setCntr(); //用于顯示求值次數(shù)
var aElements = document.getElementsByTagName("p");
for(var i=0;i<aElements.length;i++){
aElements[i].runtimeStyle.width=(document.body.clientwidth<600?"600px": "auto");
}
}
if(1!=navigator.userAgent.indexOf("MSIE")){
window.onresize=setMinWidth;
}
這會(huì)在瀏覽器改變大小時(shí)中動(dòng)態(tài)設(shè)置寬度,但是第一次呈現(xiàn)時(shí)這并不能恰當(dāng)?shù)卦O(shè)置段落大小,因此,頁面還需要使用“一次性表達(dá)式”,通過表達(dá)式設(shè)置初始寬度。
規(guī)則8 使用外部JavaScript和CSS
規(guī)則9 減少DNS查找
規(guī)則10 精簡(jiǎn)JavaScript
精簡(jiǎn)VS混淆VS壓縮
規(guī)則11 避免重定向
當(dāng)Web服務(wù)器向?yàn)g覽器返回一個(gè)重定向是,響應(yīng)中就會(huì)擁有一個(gè)范圍在3xx的狀態(tài)碼。這表示用戶代理必須執(zhí)行進(jìn)一步操作才能完成請(qǐng)求。
重定向影響的是HTML文檔的下載。
規(guī)則12 移除重復(fù)腳本
規(guī)則13 配置ETag
規(guī)則14 使Ajax可緩存
感謝各位的閱讀,以上就是“高性能網(wǎng)站優(yōu)化的規(guī)則有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)高性能網(wǎng)站優(yōu)化的規(guī)則有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!