優(yōu)秀的網(wǎng)站加載速度,就是網(wǎng)頁的打開速度,可以說網(wǎng)站打開速度越快,對于用戶體驗(yàn)越好,對于搜索引擎來說,抓取也就越快。今天長春SEO優(yōu)化網(wǎng)站長就和大家說說如何提升,網(wǎng)頁的加載速度。
性能黃金法則:
只有10%~20%的最終用戶響應(yīng)時(shí)間花在了下載HTML文檔上。其余的80%~90%時(shí)間花在了下載頁面中的所有組件上。
提升加載速度的方式:
一、減少HTTP請求
(1).合并腳本 和樣式表
將多個(gè)樣式表或者腳本文件合并到一個(gè)文件中,可以減少HTTP請求的數(shù)量從而縮短效應(yīng)時(shí)間。 不過:合并所有的樣式文件或者腳本文件可能會(huì)導(dǎo)致在一個(gè)頁面加載時(shí)加載了多于自己所需要的樣式或者腳本,對于只訪問該網(wǎng)站一個(gè)頁面的人來說反而增加了下載量,所以大家應(yīng)該自己權(quán)衡利弊。
(2).字體圖標(biāo)
(3).雪碧圖
(4).圖片地圖
知識(shí)點(diǎn)鏈接:www.rwnh.cn,將所有點(diǎn)擊提交到同一個(gè)url,同時(shí)提交用戶點(diǎn)擊的x、y坐標(biāo),服務(wù)器端根據(jù)坐標(biāo)映射響應(yīng)
二、使用CDN
CDN(內(nèi)容發(fā)布網(wǎng)絡(luò))是一組分布在多個(gè)不同地理位置的Web服務(wù)器,如果應(yīng)用程序web服務(wù)器離用戶更近,那么HTTP請求的響應(yīng)時(shí)間將縮短。
三、使用緩存Expires和Cache-Control
瀏覽器在第一次訪問頁面時(shí)加載的資源會(huì)緩存起來,第二次訪問判斷在緩存中是否已有該資源并且有沒有更新過,如果已有該資源且沒有更新過,則去緩存去取,這樣減少了下載資源的時(shí)間。原理上是通過HTTP Rquest Header中的 if-modified-since 和Response Headers中的last-modified來實(shí)現(xiàn),HTTP請求把if-modified-sincede 時(shí)間傳給服務(wù)端,服務(wù)端把last-modified時(shí)間與之對比,如果相同,則意味著文件沒有改動(dòng),則返回304,瀏覽器則從緩存中獲取資源,無需下載。雖然這種方法減少了已緩存資源的下載時(shí)間,但是仍然發(fā)起了一次http請求。
而HTTP的Expires和Cache-Control就是來免去該資源的http請求。
Cache-Control在服務(wù)端配置文件緩存有效期(3個(gè)月,1年...),有效期內(nèi)讀緩存數(shù)據(jù),不HTTP請求。
expires在服務(wù)端配置,添加的是該資源過期的日期,瀏覽器會(huì)根據(jù)該過期日期與客戶端時(shí)間對比,到期 了再重新讀取,expires時(shí)間可能存在客戶端時(shí)間跟服務(wù)端時(shí)間不一致的問題,最好與Cache-Control結(jié)合使用。更多詳細(xì)請參考:www.rwnh.cn
四、對HTTP傳輸進(jìn)行壓縮
在HTTP請求中,accept-encoding: gzip, deflate, sdch, br是指客戶端瀏覽器(這里是我的chrome瀏覽器)支持的壓縮方式。參考Yahoo!工程師的說法,支持gzip的瀏覽器范圍最廣,使用gzip的壓縮效果最佳??蛻舳瞬挥萌魏闻渲茫诜?wù)端配置即可,服務(wù)器不同,配置方法也不盡相同。
Accept-Encoding: gzip,deflate...如果Web服務(wù)器看到請求中有這個(gè)頭,就會(huì)使用客戶端列出來的方法中的一種來進(jìn)行壓縮。
代理緩存
五、樣式表放頭部
放在頭部對于實(shí)際頁面加載的時(shí)間并不能造成太大影響,但可以減少頁面首屏出現(xiàn)的時(shí)間,使頁面內(nèi)容逐步呈現(xiàn),改善用戶體驗(yàn),防止“白屏”。
我們總是希望頁面能夠盡快顯示內(nèi)容,為用戶提供可視化的回饋,這對網(wǎng)速慢的用戶來說是很重要的。
將樣式表放在文檔底部會(huì)阻止瀏覽器中的內(nèi)容逐步出現(xiàn)。為了避免當(dāng)樣式變化時(shí)重繪頁面元素,瀏覽器會(huì)阻塞內(nèi)容逐步呈現(xiàn),造成“白屏”。這源自瀏覽器的行為:如果樣式表仍在加載,構(gòu)建呈現(xiàn)樹就是一種浪費(fèi),因?yàn)樗袠邮奖砑虞d解析完畢之前不需繪制任何東西
六、腳本放底部
與樣式表相同,腳本放在底部對于實(shí)際頁面加載的時(shí)間并不能造成太大影響,但是這會(huì)減少頁面首屏出現(xiàn)的時(shí)間,使頁面內(nèi)容逐步呈現(xiàn)。
js的下載和執(zhí)行會(huì)阻塞Dom樹的構(gòu)建(嚴(yán)謹(jǐn)?shù)卣f是中斷了Dom樹的更新),所以script標(biāo)簽放在首屏范圍內(nèi)的HTML代碼段里會(huì)截?cái)嗍灼恋膬?nèi)容。
因?yàn)槟_本可能修改頁面內(nèi)容,因此瀏覽器會(huì)等待;另外,也是為了保證腳本能夠按照正確的順序執(zhí)行,因?yàn)楹竺娴哪_本可能與前面的腳本存在依賴關(guān)系,不按照順序執(zhí)行可能會(huì)產(chǎn)生錯(cuò)誤。
七、合理使用外部js/css
內(nèi)聯(lián)腳本或者樣式可以減少HTTP請求,按理來說可以提高頁面加載的速度。然而在實(shí)際情況中,當(dāng)腳本或者樣式是從外部引入的文件,瀏覽器就有可能緩存它們,從而在以后加載的時(shí)候能夠直接使用緩存,而HTML文檔的大小減小,從而提高加載速度。
這時(shí)候就要分情況來看,如果一個(gè)用戶每個(gè)月只訪問你的網(wǎng)站一兩次,那么這種情況下內(nèi)聯(lián)將會(huì)更好。而如果該用戶能夠產(chǎn)生很多頁面瀏覽量,那么緩存的樣式和腳本將會(huì)極大減少下載的時(shí)間,提交頁面加載速度。
八、減少DNS查找
當(dāng)我們在瀏覽器的地址欄輸入網(wǎng)址(譬如: www.rwnh.cn) ,然后回車,回車這一瞬間到看到頁面到底發(fā)生了什么呢?
域名解析 --> 發(fā)起TCP的3次握手 --> 建立TCP連接后發(fā)起http請求 --> 服務(wù)器響應(yīng)http請求,瀏覽器得到html代碼 --> 瀏覽器解析html代碼,并請求html代碼中的資源(如js、css、圖片等) --> 瀏覽器對頁面進(jìn)行渲染呈現(xiàn)給用戶
域名解析是頁面加載的第一步,那么域名是如何解析的呢?見文章:(后面補(bǔ)上,or自行百度)
DNS也是開銷,通常瀏覽器查找一個(gè)給定域名的IP地址要花費(fèi)20~120毫秒,在完成域名解析之前,瀏覽器不能從服務(wù)器加載到任何東西。那么如何減少域名解析時(shí)間,加快頁面加載速度呢?
當(dāng)客戶端DNS緩存(瀏覽器和操作系統(tǒng))緩存為空時(shí),DNS查找的數(shù)量與要加載的Web頁面中唯一主機(jī)名的數(shù)量相同,包括頁面URL、腳本、樣式表、圖片、Flash對象等的主機(jī)名。減少主機(jī)名的 數(shù)量就可以減少DNS查找的數(shù)量。
而減少唯一主機(jī)名的數(shù)量會(huì)潛在減少頁面中并行下載的數(shù)量,這樣減少主機(jī)名和并行下載的方案會(huì)產(chǎn)生矛盾,需要大家自己權(quán)衡。建議將組件放到至少兩個(gè)但不多于4個(gè)主機(jī)名下,減少DNS查找的同時(shí)也允許高度并行下載。
九、懶加載
對于一些圖片,費(fèi)首屏的,后面scroll到的時(shí)候再加載
十、按需加載
模塊化開發(fā),只需加載用到的資源
十一、預(yù)加載
新聞名稱:如何提升網(wǎng)頁加載速度,提高用戶體驗(yàn)
鏈接地址:http://www.rwnh.cn/article36/dghejsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、云服務(wù)器、外貿(mào)建站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)