掃描二維碼關(guān)注博盈官方微信公眾號(hào)
立享網(wǎng)站建設(shè)優(yōu)惠
一、我們需達(dá)解決的麻煩
減少HTTP請(qǐng)求數(shù)。 減少HTTP請(qǐng)求數(shù)有什么好處
降低服務(wù)器跟客戶(hù)端的建立和消除HTTP請(qǐng)求和響應(yīng)Header的開(kāi)銷(xiāo)
減少服務(wù)器為HTTP連接的進(jìn)程和線程的開(kāi)銷(xiāo),如果可能,還會(huì)包括GZIP壓縮的CPU開(kāi)銷(xiāo)。
減小被請(qǐng)求文件大小, 減少請(qǐng)求數(shù)據(jù)占用的網(wǎng)絡(luò)帶寬。
讓用戶(hù)更快的看到想要的結(jié)果。
提高客戶(hù)端渲染速度。
讓瀏覽器同時(shí)能請(qǐng)求更多的數(shù)據(jù)。
提高服務(wù)器相應(yīng)速度。
通過(guò)版本化控制客戶(hù)端Cache。
二、如何解決我們的麻煩
A。如何減少HTTP請(qǐng)求數(shù)
合并JS文件跟CSS文件。
合并框架圖片以及相對(duì)變動(dòng)較少的圖片成一張,通過(guò)CSS背景切割來(lái)完成渲染,比如:加速圖片顯示。
合理使用本地Cache來(lái)緩存JS/CSS/IMAGE。
合理使用UserData緩存JS文件,對(duì)于FF用戶(hù)可以單獨(dú)請(qǐng)求服務(wù)器,這樣能解決80%用戶(hù)的問(wèn)題。代碼可以蓉兒(meizz)的js framework1(標(biāo)注1)。
把JS跟CSS合并成一個(gè)文件
B。減小被請(qǐng)求文件大小,減少請(qǐng)求數(shù)據(jù)占用的網(wǎng)絡(luò)帶寬
壓縮JS體積:刪除JS中空白換行,注釋?zhuān)煜验L(zhǎng)變量換成短變量;
壓縮CSS體積:刪除CSS注釋、寫(xiě)法盡量用簡(jiǎn)寫(xiě);
使用(X)HTML+CSS方式搭建網(wǎng)站結(jié)構(gòu),提高CSS重用性,來(lái)減少(X)HTML文件大小;
使用服務(wù)器端GZIP壓縮JS/ CSS文件,縮小傳輸文件大小。附注:Apache1跟Apache2的GZIP的效率跟方式不一樣的,根據(jù)需要自行選擇。
嗷嗷補(bǔ)充說(shuō)明:壓縮、合并JS和CSS都由程序處理。而不是自己手動(dòng)去縮刪,不然不利于后期維護(hù)。
C。讓用戶(hù)更快的看到想要的結(jié)果
用戶(hù)對(duì)于一個(gè)站點(diǎn)的白頁(yè)的忍受時(shí)間根據(jù)統(tǒng)計(jì)是8-12秒。白頁(yè)的產(chǎn)生可能由于各種原因引起,我們能做的就是怎么讓用戶(hù)能變的稍微能等待更久。
方案1:多做一個(gè)引導(dǎo)頁(yè),讓用戶(hù)體會(huì)其中的變化
案例:mail。aol。com中的loading引導(dǎo)頁(yè)
方案2:優(yōu)先載入頁(yè)面結(jié)構(gòu)以及結(jié)構(gòu)圖片,后一步載入當(dāng)前頁(yè)面數(shù)據(jù),再后一步載入Iframe,F(xiàn)lash等數(shù)據(jù)。讓用戶(hù)盡早的看到被打開(kāi)頁(yè)面的希望。
D。提高客戶(hù)端渲染速度
這個(gè)問(wèn)題就比較泛泛了,影響客戶(hù)端的渲染速度有多方面的,主要目的都是提高程序方面的效率。
對(duì)于大索引的結(jié)構(gòu),盡可能的少用索引訪問(wèn),能用訪問(wèn)兄弟節(jié)點(diǎn)的方式盡可能用訪問(wèn)兄弟節(jié)點(diǎn)的方式。
字符串拼接盡可能用數(shù)組方式
大規(guī)模添加節(jié)點(diǎn)數(shù)據(jù),請(qǐng)不要使用appendChild方式,盡量使用類(lèi)似innerHTML的AdjacentHTML方式,F(xiàn)F下需修正(標(biāo)注1)
E。讓瀏覽器同時(shí)能請(qǐng)求更多的數(shù)據(jù)。
瀏覽器默認(rèn)只是支持單域名同時(shí)有兩個(gè)HTTP請(qǐng)求,使用多域名將能把請(qǐng)求數(shù)提高,在網(wǎng)絡(luò)條件優(yōu)良的情況下,能更快的下載數(shù)據(jù),呈現(xiàn)結(jié)果。
F。提高服務(wù)器相應(yīng)速度
對(duì)于需快速響應(yīng)的文件,把其放入快速響應(yīng)的服務(wù)器,應(yīng)該是不錯(cuò)的方案,優(yōu)化方案請(qǐng)系統(tǒng)儲(chǔ)備組提供。
G。通過(guò)版本化控制客戶(hù)端Cache
通常js/css這類(lèi)文件改動(dòng)比較頻繁,但是為了加載速度變快,我們有可能需要設(shè)定這類(lèi)文件的過(guò)期時(shí)間為幾天后,這樣我們碰到的問(wèn)題就是,如何及時(shí)更新這些在cache的文件?
通過(guò)一個(gè)簡(jiǎn)單的配置,通過(guò)修改JS的版本來(lái)及時(shí)告訴瀏覽器,這些文件必須重新請(qǐng)求了,不要繼續(xù)使用瀏覽器cache中的數(shù)據(jù)。 方案有好幾個(gè):
手動(dòng)改這些js的文件名
手動(dòng)改這些js的路徑
通過(guò)URL Rewrite方式來(lái)改重定位js路徑
通過(guò)一個(gè)在高響應(yīng)服務(wù)器上的一個(gè)js配置告知頁(yè)面,這個(gè)頁(yè)面該鏈接哪些JS文件
大版本不變,小版本不斷追加,等一定時(shí)間后,統(tǒng)一更新,高效利用cache
深圳龍華網(wǎng)頁(yè)制作