解決網(wǎng)站響應(yīng)速度需要注意的18個(gè)規(guī)則 |
互聯(lián)網(wǎng)上的網(wǎng)站越來(lái)越多,筆者也訪問(wèn)過(guò)不少網(wǎng)站,有的網(wǎng)站秒開(kāi),有的網(wǎng)站需要3-5秒才能加載完畢,也有甚者需要6-10秒才能加載完畢,這大大的影響了用戶體驗(yàn)。
解決網(wǎng)站響應(yīng)速度需要注意的18個(gè)規(guī)則
下來(lái)主要介紹一下網(wǎng)站性能優(yōu)化的方法:
規(guī)則一:減少HTTP請(qǐng)求
1、圖片地圖:允許在一個(gè)圖片上關(guān)聯(lián)多個(gè)URL,目標(biāo)URL的選擇取決于用戶點(diǎn)擊了圖片上的哪個(gè)位置。
2、CSS Sprites(css精靈):需要將多個(gè)圖片合并在一個(gè)單獨(dú)的圖片上,根據(jù)css的background屬性定位到對(duì)應(yīng)的圖標(biāo)上。圖片地圖中的圖片必須是連續(xù)的,而css Sprites則沒(méi)有這個(gè)限制。
3、內(nèi)聯(lián)圖片:通過(guò)使用data:URL模式可以在WEB頁(yè)面中包含圖片但無(wú)需任何額外的HTTP請(qǐng)求。Data:URL模式的主要缺陷在于不受IE的支持(包括7),另一個(gè)缺陷就是可能存在數(shù)據(jù)大小上的限制。
將內(nèi)聯(lián)圖片放置在外部,可以從緩存中得到額外收獲。
4、 合并腳本和樣式表:多個(gè)腳本合并為一個(gè)腳本,多個(gè)樣式表合并為一個(gè)樣式表。
規(guī)則二:使用內(nèi)容發(fā)布網(wǎng)絡(luò)
如果應(yīng)用程序Web服務(wù)器離用戶更近,則一個(gè)HTTP請(qǐng)求的響應(yīng)時(shí)間將縮短。
內(nèi)部發(fā)布網(wǎng)絡(luò)(cdn)是一組分布在多個(gè)不同地理位置的Web服務(wù)器,用于更加**地向用戶發(fā)布內(nèi)容。除了縮短響應(yīng)時(shí)間之外,CDN還可以帶來(lái)其他優(yōu)勢(shì)。他們的服務(wù)包括備份,擴(kuò)展存儲(chǔ)能力和進(jìn)行緩存。
依賴CDN的一個(gè)缺點(diǎn)就是你的響應(yīng)時(shí)間可能會(huì)受到其他網(wǎng)站的流量的影響,第二就是無(wú)法直接控制組件服務(wù)器所帶來(lái)的特殊麻煩。例如:修改http響應(yīng)頭必須通過(guò)服務(wù)提供商而不是自己,而且如果CDN的服務(wù)性能下降,你的工作質(zhì)量也隨之下降。
CDN用于發(fā)布靜態(tài)內(nèi)容,如圖片,腳本,樣式表和Flash。
規(guī)則三:添加Expires頭
Web服務(wù)器使用Expires頭來(lái)告訴Web客戶端它可以使用一個(gè)組件的當(dāng)前副本,知道指定的時(shí)間為止。HTTP規(guī)范中簡(jiǎn)要地稱該頭為“在這一日期/時(shí)間之后,響應(yīng)將被認(rèn)為是無(wú)效的”。
為了克服Expires的限制(因?yàn)镋xpires使用一個(gè)特定的事件,這要求服務(wù)器和客戶端的時(shí)鐘要嚴(yán)格同步,而且過(guò)期日期需要經(jīng)常檢查,若到期則需要服務(wù)器提供一個(gè)新日期。)HTTP1.1引入了Cache-Control頭,使用max-age指定指定組件被緩存多久。它以秒為單位定義。
雖然Cache-Control解決了Expires的限制,但對(duì)于不支持HTTP1.1的瀏覽器,你可能仍然希望提供Expires頭。
Expires和Cache-Control的max-age同時(shí)存在時(shí),Cache-Control具有優(yōu)先權(quán)并且明確指出了相對(duì)于請(qǐng)求時(shí)間所經(jīng)過(guò)的秒數(shù)。
Expires不僅僅應(yīng)用于圖片,而應(yīng)該包含任何不經(jīng)常變化的組件,如腳本,樣式白哦和flash組件。
如果想在Expires過(guò)期前更新所緩存的組件,則只需要修改文件名即可,一般講版本號(hào)嵌入組件的文件名內(nèi),修改版本號(hào)即可自動(dòng)更新。
果一個(gè)組件沒(méi)有長(zhǎng)久的Expires頭,它仍然會(huì)存儲(chǔ)在瀏覽器的緩存中。但在后續(xù)的請(qǐng)求中,瀏覽器會(huì)檢查緩存并發(fā)現(xiàn)組件已經(jīng)過(guò)期,就會(huì)向服務(wù)器發(fā)送一個(gè)條件GET請(qǐng)求來(lái)檢查,若未改變則接收到304狀態(tài)碼。而通過(guò)使用Expires頭則可以避免額外的HTTP請(qǐng)求,對(duì)應(yīng)減少響應(yīng)時(shí)間。
規(guī)則四:壓縮組件
從HTTP1.1開(kāi)始,Web客戶端可以通過(guò)HTTP請(qǐng)求中的Accept-Encoding頭來(lái)表示對(duì)壓縮的支持。(Accept-Encoding:gzip,deflate)而如果Web服務(wù)器看到請(qǐng)求有這個(gè)頭,就會(huì)使用客戶端列出來(lái)的方法中的一種來(lái)壓縮響應(yīng),Web服務(wù)器通過(guò)響應(yīng)中的Content-Encoding頭來(lái)通知Web客戶端采用了何種壓縮。(Content-Encoding:gzip)
壓縮的成本有:服務(wù)器端會(huì)花費(fèi)額外的CPU周期來(lái)完成壓縮,客戶端要對(duì)壓縮文件進(jìn)行解壓縮。
代理緩存:為了避免不同的瀏覽器請(qǐng)求相同的代理時(shí)出現(xiàn)差異(一個(gè)瀏覽器支持gzip,另一個(gè)瀏覽器不支持gzip),而導(dǎo)致獲取不到正確的數(shù)據(jù)?梢栽诜⻊(wù)器的Vary響應(yīng)頭中包含Accept-Encoding來(lái)解決。(Vary:Accept-Encoding),這樣代理就會(huì)緩存每個(gè)響應(yīng)的兩個(gè)版本——Accept-Encoding為gzip的壓縮內(nèi)容和沒(méi)有指定Accept-Encoding時(shí)的非壓縮內(nèi)容。
規(guī)則五:將樣式表放在頂部
當(dāng)樣式表放在文檔底部會(huì)導(dǎo)致在瀏覽器中阻止內(nèi)容逐步呈現(xiàn),瀏覽器會(huì)延遲顯示任何可視化組件,這種現(xiàn)象稱為白屏。
使用LINK標(biāo)簽將樣式表放在文檔HEAD中,可以解決白屏和無(wú)樣式內(nèi)容的閃爍。
規(guī)則六:將腳本放在底部
使用腳本時(shí),對(duì)于所有位于腳本以下的內(nèi)容,逐步呈現(xiàn)都被阻塞了,也阻塞了并行下載。腳本會(huì)阻塞其后內(nèi)容的呈現(xiàn),還會(huì)阻塞其后面組件的下載。
HTTP1.1規(guī)范建議瀏覽器從每個(gè)主機(jī)名并行地下載兩個(gè)組件,而HTTP1.0,Firefox的默認(rèn)值是每個(gè)主機(jī)名并行下載8個(gè)組件。
研究表明:使用兩個(gè)主機(jī)名比使用1,4或10個(gè)主機(jī)名能帶來(lái)更好的性能。
在下載腳本時(shí)瀏覽器阻塞并行下載的另外一個(gè)原因是為了保證腳本能夠按照正確的順序執(zhí)行。
規(guī)則七:避免CSS表達(dá)式
CSS表達(dá)式很容易導(dǎo)致頻繁求值,從而導(dǎo)致性能低下。
避開(kāi)問(wèn)題: 1)、用一次性的表達(dá)式
2)、使用事件處理器代替。
規(guī)則八:使用外部的JS和CSS
純粹而言,內(nèi)聯(lián)快一些。但是外部的js和css文件有機(jī)會(huì)被瀏覽器緩存起來(lái),而且可維護(hù)性也高得多。
兩全其美的方法是加載后下載,即JS和css被加載到頁(yè)面中兩次(先是內(nèi)聯(lián)的,然后是外部的)。為主頁(yè)內(nèi)聯(lián)css和js,但又能為后續(xù)頁(yè)面瀏覽量提供外部文件?梢酝ㄟ^(guò)在主頁(yè)加載完成后動(dòng)態(tài)下載外部組件來(lái)實(shí)現(xiàn)。(通過(guò)onload時(shí)間)要使其能夠工作,必須處理雙重定義。(在onload函數(shù)內(nèi),添加外部的css和js,新增link和script標(biāo)簽到頁(yè)面)
還可以利用cookie指示器來(lái)實(shí)現(xiàn)動(dòng)態(tài)內(nèi)聯(lián)。用戶**個(gè)訪問(wèn)頁(yè)面時(shí),服務(wù)器發(fā)現(xiàn)沒(méi)有cookie,則生成一個(gè)內(nèi)聯(lián)了組件的頁(yè)面。然后服務(wù)器添加js來(lái)在頁(yè)面加載后動(dòng)態(tài)下載外部文件(并設(shè)置了cookie)。下一次訪問(wèn)頁(yè)面,服務(wù)器看到了cookie,則會(huì)生成一個(gè)使用外部文件的頁(yè)面。
規(guī)則九:減少DNS查找
Keep-Alive可以通過(guò)重用現(xiàn)有連接而避免了重復(fù)的DNS查找,還能避免TCP/IP開(kāi)銷(xiāo)來(lái)減少響應(yīng)時(shí)間。
減少**主機(jī)名的數(shù)量就可以減少DNS查找的數(shù)量,但也會(huì)潛在的減少頁(yè)面中并行下載的數(shù)量。
規(guī)則十:精簡(jiǎn)和壓縮JS、CSS大小
精簡(jiǎn)是從代碼中移除不必要的字符以減少其大小,進(jìn)而改善加載時(shí)間的實(shí)踐。
精簡(jiǎn)js代碼的工具有JSMin,Compressor(已更名為ShrinkSafe)
Gzip壓縮產(chǎn)生的影響**,但精簡(jiǎn)能夠進(jìn)一步減少文件大小,隨著js 的使用量和大小不斷增長(zhǎng),精簡(jiǎn)js代碼能夠得到更多的節(jié)省。
CSS的精簡(jiǎn)也很有必要,移除注釋和空白,合并相同的類,移除不適用的類以及進(jìn)行一些直觀的優(yōu)化,比如對(duì)顏色進(jìn)行縮寫(xiě)和移除不必要的字符串(用0代替0px)
規(guī)則十一:避免重定向
HTML文檔的頭中包含的meta refresh標(biāo)簽可以在其content屬性所指定的秒數(shù)之后重定向用戶
對(duì)于內(nèi)部流量的跟蹤,可以通過(guò)建立Referer日志來(lái)避免重定向,以此節(jié)省最終用戶響應(yīng)時(shí)間。
對(duì)于跟蹤出站流量,可以使用信標(biāo)——一個(gè)HTTP請(qǐng)求,其URL中包含有跟蹤信息。比如在a標(biāo)簽上添加點(diǎn)擊事件,新建一個(gè)圖片對(duì)象,給它的src賦予鏈接來(lái)源和出處。
規(guī)則十二:刪除重復(fù)腳本
重復(fù)腳本損傷性能的方式有兩種:不必要的HTTP請(qǐng)求和執(zhí)行js所浪費(fèi)的事件。
規(guī)則十三:使ajax緩存
Ajax不是一個(gè)單獨(dú)的,需要許可證的技術(shù),而且一組技術(shù),包括js,css,dom和異步數(shù)據(jù)獲取,ajax 的目的是為了圖片Web本質(zhì)的開(kāi)始-停止交互方式。
Ajax請(qǐng)求分被動(dòng)和主動(dòng)。被動(dòng)請(qǐng)求:為了將來(lái)使用而預(yù)先發(fā)起的,比如:預(yù)加載。主動(dòng)請(qǐng)求:基于用戶當(dāng)前的操作而發(fā)起的。
使ajax請(qǐng)求可緩存,可以使用一個(gè)長(zhǎng)久的Expires頭來(lái)替換原來(lái)的HTTP頭,但還需要進(jìn)行更多的工作,使用查詢字符串參數(shù),將用戶名以及該消息的ID都加入查詢字符串中。
要確保Ajax請(qǐng)求遵守性能知道,尤其應(yīng)具有長(zhǎng)久的Expires頭。
規(guī)則十四:盡量少用iframe
眾所周知iframe對(duì)于SEO優(yōu)化,和網(wǎng)頁(yè)打開(kāi)都有影響,應(yīng)該盡量減少使用。但是在實(shí)際應(yīng)用中可能會(huì)用iframe做一些廣告加載等,這個(gè)看具體需要進(jìn)行優(yōu)化。
規(guī)則十五:減少跨域訪問(wèn)
跨域訪問(wèn)相比較來(lái)說(shuō)是個(gè)較耗時(shí)的過(guò)程,如非必要,盡量減少跨域請(qǐng)求的個(gè)數(shù)。
規(guī)則十六:精簡(jiǎn)網(wǎng)站的DOM結(jié)構(gòu)
過(guò)于復(fù)雜和冗余的DOM結(jié)構(gòu)會(huì)增加瀏覽器解析的時(shí)長(zhǎng)
規(guī)則十七:對(duì)Cookie和localstorage進(jìn)行**
減少站點(diǎn)對(duì)于Cookie和localstorage的使用,客戶端存取的環(huán)境比較復(fù)雜,不要往Cookie和localstorage中存儲(chǔ)敏感信息,也應(yīng)該限制存儲(chǔ)的數(shù)據(jù)大小。
規(guī)則十八:避免圖片src屬性為空
瀏覽器在渲染的時(shí)候,會(huì)對(duì)圖片的src路徑進(jìn)行請(qǐng)求,當(dāng)src的路徑不存在或者為空時(shí),瀏覽器會(huì)進(jìn)行錯(cuò)誤顯示,或者再去請(qǐng)求圖片onerror事件里指定的操作,會(huì)增加瀏覽器的請(qǐng)求次數(shù),
本文由甲爪日付廣告聯(lián)盟整理編輯!更多文章推薦閱讀 :http://www.jiazhua.com
資訊來(lái)源:www.jiazhua.com
|
友情提示:
信息由用戶自行發(fā)布,如果發(fā)現(xiàn)錯(cuò)誤或不符合法規(guī)或造成侵權(quán),請(qǐng)及時(shí)通知本站更正或刪除,具體聯(lián)系方式見(jiàn)頁(yè)面底部聯(lián)系我們,謝謝。 |
當(dāng)前頁(yè)在本站[名站在線]7天內(nèi)點(diǎn)擊次數(shù)(點(diǎn)擊次數(shù)為零的日期不顯示): |
信息評(píng)估: |
(還沒(méi)有網(wǎng)友對(duì)該信息作出評(píng)估,你想為該信息提供第一個(gè)評(píng)估嗎?) |
寧波海曙區(qū)電工服務(wù)維修電路寧波海曙區(qū)萬(wàn)佳維修可為您提供燈具安裝電路檢測(cè)專業(yè)水電工服務(wù)137—8OOO—8O52—楊師傅
服務(wù)有更換保險(xiǎn)絲跳閘短路,漏電檢測(cè),水管水龍頭安裝,修各種燈價(jià)格優(yōu)惠。
安裝維修水龍頭電路維修,換保險(xiǎn)絲電燈安裝維修安裝、更換、維修各類電燈水龍頭更換安裝插座和開(kāi)關(guān)。
來(lái)電咨詢,價(jià)格優(yōu)惠—包修好。服務(wù)快。
西湖花園新街社區(qū)華夏巷麗園馨都聯(lián)豐紅樓蒲家蘭庭
白云二村關(guān)愛(ài)小區(qū)南區(qū)尹江岸二村羅曼風(fēng)情廣安里
莊灣沁園城南公館在水一方...常熟支塘鎮(zhèn)環(huán)衛(wèi)所13862146368電話13862146368業(yè)務(wù)范圍抽糞化糞池清理抽污水抽化糞池市政排水管道清淤、市政管道新技術(shù)修復(fù)、污水站清淤、非開(kāi)挖鋪設(shè)管道、清理疏通疑難管道、污水處理廠微生物除臭、清淤機(jī)械生產(chǎn)銷(xiāo)售、賓館、物業(yè)、廚房、餐廳下水道生物除油除臭。
一、化糞池清理、化糞池護(hù)理、化糞池設(shè)計(jì)、化糞池施工、清理污水池、隔油池清理護(hù)理,抽糞污水池清理。清理化糞池、污水清理主要指化糞池、廁所尤其是無(wú)市政管網(wǎng)的老城區(qū),小胡同的廁所糞便通過(guò)糞...寧波安居幸福苑維修空調(diào)樟樹(shù)街上門(mén)維修師傅萬(wàn)?照{(diào)盧師傅專業(yè)從事幸福苑,桑田路,錦苑小區(qū)
電話135—6659—3550盧師傅
服務(wù)優(yōu)質(zhì),免費(fèi)檢測(cè),質(zhì)量保證,價(jià)格合理,***評(píng)
現(xiàn)在有人冒充附近空調(diào)和盧師傅,請(qǐng)大家注意
萬(wàn)福盧師傅電話是135-6659-3550如果有其他號(hào)碼全部是假冒請(qǐng)大家不要上當(dāng)受騙
竭—誠(chéng)—為—您—服—?jiǎng)?wù)
寧波萬(wàn)福維修中心服務(wù)上門(mén)空調(diào)加氟利昂,修空調(diào)各種故障,空調(diào)拆裝,空調(diào)清洗保養(yǎng)等服務(wù)。
所有維修過(guò)的電器一律開(kāi)具保修單,接線部一律電話,確保每一...寧波輕紡城空調(diào)維修專業(yè)輕紡城附近修空調(diào)石碶街道空調(diào)維修加氟利昂盧師傅口碑廣泛好評(píng)
電話135-6659-3550盧師傅
竭—誠(chéng)—為—您—服—?jiǎng)?wù)24小時(shí)服務(wù),來(lái)電咨詢!。
服務(wù)廣泛好評(píng)正規(guī)維修服務(wù)中心優(yōu)質(zhì)維修質(zhì)量
寧波萬(wàn)?照{(diào)維修服務(wù)中心
詳細(xì)介紹、專業(yè)服務(wù)到石碶街道范圍及時(shí)上門(mén)檢測(cè)修理,空調(diào)加氟利昂、空調(diào)清洗、上門(mén)空調(diào)拆裝、空調(diào)拆裝移機(jī)等一條龍服務(wù)。
美的空調(diào)維修格力空調(diào)維修海爾空調(diào)維修
耀馬空調(diào)維修波樂(lè)空調(diào)維修春蘭空調(diào)維修
志高空調(diào)維修三菱空調(diào)維修日立...寧波鄞州萬(wàn)里學(xué)院空調(diào)維修加氟利昂電話寧波鄞州高教園區(qū)萬(wàn)里學(xué)院空調(diào)維修加氟利昂
聯(lián)系電華話135—6659—3550盧師傅
竭—誠(chéng)—為—您—服—?jiǎng)?wù)
寧波鄞州萬(wàn)?照{(diào)維修服務(wù)中心
專業(yè)空調(diào)維修、空調(diào)安裝、空調(diào)移機(jī)、空調(diào)清洗、空調(diào)加氟、空調(diào)拆裝、空調(diào)回收、空調(diào)遙控器出售--萬(wàn)福中心甬城的綜合型家電維修中心,中心成立于2002年。中心擁有嚴(yán)格的管理制度,**的服務(wù)質(zhì)量,專業(yè)的維修技師,先進(jìn)的檢測(cè)設(shè)備,良好的至誠(chéng)信譽(yù)。
得到廣大用戶和空調(diào)廠家的一致好評(píng)。
寧波萬(wàn)...
|
|
|
|
|