WEB標(biāo)準(zhǔn)化之網(wǎng)頁內(nèi)容篇

2022-11-23    分類: 網(wǎng)站建設(shè)

WEB前端優(yōu)化主要分頁面內(nèi)容優(yōu)化和服務(wù)器優(yōu)化,本篇主要介紹內(nèi)容優(yōu)化,服務(wù)器端的優(yōu)化以后再講。

頁面內(nèi)容優(yōu)化的四大原則是:降低請(qǐng)求數(shù)、減少交互通信量、合理利用“并行”、節(jié)約系統(tǒng)消耗。

一、先看一組數(shù)據(jù);下面是打開一個(gè)網(wǎng)站時(shí),用firebug測得數(shù)據(jù):

從上面的數(shù)據(jù)可以看出,網(wǎng)頁打開時(shí),主要時(shí)間(約90%)在下載圖片、CSS和JS等各項(xiàng)資源。這么多的加載資源勢必導(dǎo)致HTTP請(qǐng)求數(shù)增加,那么精減冗余的HTTP請(qǐng)求數(shù),則會(huì)提升網(wǎng)頁的加載速度。那么如何在不影響頁面展示效果的基礎(chǔ)上,減少HTTP請(qǐng)教數(shù)呢?

1、合并同類文件

把分散的CSS樣式或者JS腳本等合并到同一個(gè)文件中,則能減少HTTP請(qǐng)求數(shù)。同樣,對(duì)于腳本也可以這樣處理。如下圖:

2、CSS sprites

Css sprites又叫css精靈,它能把所有的背景圖片整合到一個(gè)圖片文件中,然后利用CSS的background-image和background-position屬性來顯示圖片的不同部分。通過這種方式,可以降低圖片的請(qǐng)求次數(shù)。需要注意的是:在當(dāng)前我國的網(wǎng)速而言,不高于200KB的單張圖片的所需載入時(shí)間基本是差不多的,所以無src="/upload/pic19/sprite_ltdrk_20091211_ltr.png

雅虎使用的css-sprites

提醒:不能濫用這項(xiàng)技術(shù),因?yàn)樯婕昂芏鄨D片,使用不當(dāng),會(huì)增加后期維護(hù)的難度;同時(shí),不能將所有圖片合在一起,只拼合通用的即可,如上圖雅虎圖片中的圖標(biāo)。鑒于古老的有一利必有一弊原則,整合后的圖片減少的請(qǐng)求次數(shù),但增加了首次加載的時(shí)間,如果能在系統(tǒng)架構(gòu)中把緩存策略做好,這項(xiàng)技術(shù)可以備用。

3、精簡重復(fù)腳本

一個(gè)JS在同一頁面中引用多數(shù),會(huì)影響頁面的性能。因?yàn)橘樣嗟腏S不僅會(huì)增加JS運(yùn)算,還順便增加了HTTP請(qǐng)求。注:火狐瀏覽器可以智能省略重復(fù)的JS發(fā)起的多余的HTPP請(qǐng)求,但I(xiàn)E瀏覽器就會(huì)規(guī)規(guī)矩矩地一一執(zhí)行。鑒于IE目前在瀏覽器市場中的比重,這個(gè)問題應(yīng)該解決的。

二、減少交互通信量

上面的表格說明了一個(gè)情況:頁面內(nèi)需要下載的資源跟響應(yīng)時(shí)間是成正比的,客戶端跟服務(wù)器交互的通信量越大,響應(yīng)時(shí)間越長。有效地降低通信量就能提升網(wǎng)站性能。

1、壓縮技術(shù)

(1)壓縮CSS和JS。

通過減小這類文件的體積,從而提升下載速度。最簡單的壓縮方法是刪除冗余信息,比如去年CSS和腳本中的注釋、多余的空白符(換行符、Tab縮進(jìn))等;另外還有語法壓縮和文本混淆的方式,通過類似字典的方式,用簡單的字母代替代碼中的變量。

壓縮專門工具,CSS壓縮工具有Page Speed、YUI Compressor;JS壓縮工具有中JSMIn、Page Speed、YUI Compressor、JavaScriptCompressor等。

下面是打開一個(gè)網(wǎng)頁后Page Speed給出的JS壓縮和CSS壓縮建議。

(2)優(yōu)化圖片

圖片的大小跟其質(zhì)量成正比,大體積的圖片,勢必影響瀏覽器的加載速度。在設(shè)計(jì)圖片時(shí),注意把圖片保存為web格式。網(wǎng)站普通采用圖片格式是PNG、JPG、GIF三種,選擇合適的圖片類型也有助于網(wǎng)站性能的提高。

PNG 格式比GIF的體積小,且支持Alpha通道,但不支持動(dòng)畫

JPG格式壓縮率比較高,適合于照片類的圖片

GIF只有256色,不宜表現(xiàn)色彩豐富的圖像、小圖標(biāo)、徽標(biāo)等,同時(shí)GIF還支持小動(dòng)畫

可以根據(jù)具體的圖片類型,選擇合適的圖片格式。

同樣,Page Speed里也有對(duì)圖片優(yōu)化的建議。

提醒:

推遲加載內(nèi)容 把你網(wǎng)站的內(nèi)容按客戶需求的重要性分為兩部分,把客戶需要的信息,比如頁面內(nèi)容、網(wǎng)站導(dǎo)航等先加載,而一些特效類的內(nèi)容后加載。

對(duì)靜態(tài)內(nèi)容使用無Cookie請(qǐng)求。當(dāng)瀏覽器同時(shí)請(qǐng)求一張靜態(tài)圖片和發(fā)送cookie時(shí),服務(wù)器對(duì)于這類cookie不會(huì)做任何處理,即這些cookie請(qǐng)求是多余的。更壞的消息時(shí),服務(wù)器會(huì)認(rèn)為這類請(qǐng)求是由于某些負(fù)面因素而創(chuàng)建的網(wǎng)絡(luò)傳輸,所以很有必要確保靜態(tài)內(nèi)容的請(qǐng)求是無cookie的請(qǐng)求。可以把所有的靜態(tài)內(nèi)容存放在一個(gè)子域名內(nèi)。比如域名是www.exploresem.com,則把靜態(tài)內(nèi)容存放在 style.exploresem.comh上,同時(shí)注意,cookie要設(shè)子域名www.exploresem.com上。如果調(diào)在頂級(jí)域名上,style.exploresem.comh的請(qǐng)教也會(huì)包含cookie,結(jié)果就事與愿違了。如果不方便在子域名上做上述設(shè)置,可以買一個(gè)新域名來來存放靜態(tài)內(nèi)容。當(dāng)然,這個(gè)新域名也必須是未設(shè)置cookie的。

三 合理利用并行

1、重定向要盡量避免,如果必須要重定向,也是用301永久重定向,慎用302臨時(shí)重定向。

HTTP/1.1 301 Moved Permanently

Location:http://example.com/next.url

Content-Type:text/html

以上代碼是301重定向的響應(yīng)碼??梢杂没鸷寮﨟TTPfox查看網(wǎng)頁頭部信息。

301重定向會(huì)拖延頁面中元素地加載,因?yàn)榧虞dHTML文件前,不會(huì)下載任何文件。

提醒:當(dāng)url結(jié)尾本該有斜杠卻被省略的情況很普遍。像訪問http://www.example.com/photo 這類url時(shí),大部分網(wǎng)站返回的是404頁面,這對(duì)用戶很不友好,應(yīng)該做一個(gè)重定向至http://www.example.com/photo/,Apache服務(wù)器中可以用mod_rewrite來改寫url,杜絕此類情況。

2、慎用iframe

搜索引擎不識(shí)別iframe,而且它會(huì)阻止頁面其他內(nèi)容的加載,從而也拖慢了網(wǎng)頁整體的加載速度。除非你有很濃烈的懷舊情節(jié)或者叛逆情懷,不然,請(qǐng)慎用iframe。

3、把樣式表置于頂部

把樣式表放到HTML的 內(nèi)部,在頁面加載時(shí),就會(huì)有次序地顯示頁面內(nèi)容,有助于頁面快速有序地呈現(xiàn)。若樣式表在底部,IE等一部分瀏覽器,會(huì)暫時(shí)停止加載頁面,先去讀取底部的樣式表來,內(nèi)容的有序呈現(xiàn)將被打破,不利于用戶體驗(yàn)。

4、HTML中腳本放在樣式后面

在下載腳本時(shí),瀏覽器要確認(rèn)腳本中是否有動(dòng)作修改了頁面的結(jié)構(gòu)或者內(nèi)容,這樣,就會(huì)暫時(shí)阻止其他內(nèi)容的加載。

四、節(jié)約系統(tǒng)消耗

1、避免使用CSS表達(dá)式(CSS Expression)

CSS表達(dá)式從IE5瀏覽器開始就支持此,它是動(dòng)態(tài)設(shè)置CSS屬性的強(qiáng)大方法,但也存在著一定的危險(xiǎn)性。我們看下面的代碼:

background-color: expression( (new Date()).getHours()%2 ? ”#F00″ : ”#00F” );

上面的代碼是使用CSS Expression,實(shí)現(xiàn)隔一個(gè)小時(shí)切換一次背景顏色。

CSS Expression的問題就在于它的計(jì)算頻率要比想象的多出很多。不僅僅是在頁面顯示和縮放時(shí),就是在頁面滾動(dòng)、乃至移動(dòng)鼠標(biāo)時(shí)都會(huì)要重新計(jì)算一次。給CSS Expression增加一個(gè)計(jì)數(shù)器可以跟蹤表達(dá)式的計(jì)算頻率。在頁面中隨便移動(dòng)鼠標(biāo)都可以輕松達(dá)到10000次以上的計(jì)算量。當(dāng)需要實(shí)現(xiàn)某些效果控制時(shí),可以用更擅長此技能的JS。

2、避免使用濾鏡

IE獨(dú)有屬性AlphaImageLoader用于修正7.0以下版本中顯示PNG圖片的半透明效果。這個(gè)濾鏡的問題在于瀏覽器加載圖片時(shí)它會(huì)終止內(nèi)容的呈現(xiàn)并且凍結(jié)瀏覽器。在每一個(gè)元素(不僅僅是圖片)它都會(huì)運(yùn)算一次,增加了內(nèi)存開支,因此它的問題是多方面的。

完全避免使用AlphaImageLoader的好方法就是使用PNG8格式來代替,這種格式能在IE中很好地工作。

網(wǎng)頁題目:WEB標(biāo)準(zhǔn)化之網(wǎng)頁內(nèi)容篇
瀏覽路徑:http://www.muchs.cn/news47/215997.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、動(dòng)態(tài)網(wǎng)站做網(wǎng)站、網(wǎng)站策劃電子商務(wù)、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)