国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

HTML5縮減了HTML文檔:分析HTML5的性能

2024-08-26 00:16:40
字體:
供稿:網(wǎng)友

武林網(wǎng)(www.survivalescaperooms.com)文章簡介:很多人問HTML5是什么?我們說可以先用HTML5的方式就是把DOCTYPE先改了,因?yàn)槟?前很多頁面都還是用傳統(tǒng)的方式。HTML5的方式,本身是兼容IE瀏覽器的,從IE6到IE10都可以,包括高級瀏覽器都支持。

【編者按】以下這篇文章是由一位名為張黎明的IT技術(shù)人員所寫,其發(fā)表于InfoQ的網(wǎng)頁上。這次他在全文里面從9個(gè)不同的方面分析HTML5的性能,還是很值得相應(yīng)的開發(fā)人員閱讀的。

從性能角度來說,HTML5首先是縮減了HTML文檔,使這件事情變得更簡單。第一,從用戶可讀性上說,原先一大堆東西,像初學(xué)者第一次看到這些東 西是看不懂的,而HTML5的聲明方式對用戶來說顯然更友好一些。 第二,文檔編碼的聲明,用HTML5方式的話,就很簡單。很多人問HTML5是什么?我們說可以先用HTML5的方式就是把DOCTYPE先改了,因?yàn)槟?前很多頁面都還是用傳統(tǒng)的方式。HTML5的方式,本身是兼容IE瀏覽器的,從IE6到IE10都可以,包括高級瀏覽器都支持。所以說擁抱HTML5最簡 單的方式就是把DOCTYPE給改了。

HTML5縮減了HTML文檔:分析HTML5的性能

1.更簡潔的標(biāo)簽

接下來可能并不是一件很常見的事情,但是卻是我比較推崇的,使用更簡潔的標(biāo)簽方式。HTML5從這個(gè)名字大家可以聽出,它是從HTML4繼承過來 的。HTML4里面有嚴(yán)格模式跟過渡模式,HTML5是支持這種過渡模式的,就是你可以不把一些標(biāo)簽閉合。但是,我并不推薦所有的標(biāo)簽,比方說BODY標(biāo) 簽的不閉合,這種我們不推薦。但是像P標(biāo)簽最常用的,還有列表標(biāo)簽LI。為什么這樣說?首先從視覺的角度來說,這樣的方式更簡潔一點(diǎn)。然后關(guān)鍵的是在文檔 傳輸過程中,內(nèi)容會更少。

HTML5標(biāo)簽屬性的聲明支持三種方式:單括號、雙括號和不加括號。為了減少文檔大小,我是選擇不加雙引號的方式或單引號的方式。但是要注意,假設(shè) 是類屬性的聲明,因?qū)傩钥赡馨ǘ鄠€(gè)類,多個(gè)類的時(shí)候則必須用括號括起來。在這方面,給大家看一下谷歌的一個(gè)實(shí)踐。谷歌自己有一個(gè)頁面完全實(shí)踐了上面的東 西,文檔的大小減少了20%,使HTML文檔的傳輸減少了20%。如果把整個(gè)都實(shí)踐起來,可以達(dá)到5%—20%之間的減少。這是第一步,縮減HTML文檔 的大小。

HTML5縮減了HTML文檔:分析HTML5的性能

2.圖片優(yōu)化

接下來是關(guān)于圖片的優(yōu)化,圖片永遠(yuǎn)是又愛又恨的元素。因?yàn)楫?dāng)圖片多的時(shí)候,會嚴(yán)重拖垮整個(gè)頁面的加載速度。關(guān)于圖片的優(yōu)化方式,《高性能網(wǎng)站》書中已有很多介紹,總結(jié)起來主要有三點(diǎn):使用精靈圖、優(yōu)化圖片的大小,使用DATA URI,具體這里就不細(xì)說了。

圖片優(yōu)化的另一個(gè)思路是:no-image。拋棄圖片,擁抱CSS3。原先需要設(shè)置一張圓角效果的圖片,現(xiàn)在使用CSS3中的 border-radius;原先需要設(shè)置陰影效果的圖片,現(xiàn)在使用CSS3中的box-shadow;原先需要設(shè)置漸變的背景圖片,現(xiàn)在使用CSS3中 的gradient。

3.預(yù)取

接下來講Prefetching,預(yù)取,是優(yōu)化的另一個(gè)思路。我們現(xiàn)在優(yōu)化的思路無非就是少。很多都是從少的角度,比方說前面把文檔大小減少,把圖 片的大小減少。很多張的圖片變成一張精靈圖,都是為了把發(fā)送請求的數(shù)量減少。預(yù)取的話,是另一種思路,提早加載好資源,用戶去點(diǎn)的時(shí)候,實(shí)際上已經(jīng)加載 好,那肯定是更快了。

預(yù)取,一共有兩部分:一部分是資源的預(yù)取,還有一部分是DNS的預(yù)解析。

資源預(yù)加載有幾個(gè)點(diǎn)需要注意:

預(yù)加載只是在瀏覽器空閑的時(shí)候才會去拉,但不保證一定會去拉,這是很重要的一點(diǎn)。因?yàn)楸旧頌g覽器有一個(gè)全局的監(jiān)聽器,這是內(nèi)部的一個(gè)接口,當(dāng)瀏覽氣空閑的時(shí)候,它會去執(zhí)行瀏覽器空閑的時(shí)候應(yīng)該做事情,但是這個(gè)空閑的回調(diào)不一定被觸發(fā),所以說并不保證一定會執(zhí)行預(yù)加載。

Chrome不支持HTTPS資源的預(yù)加載,像Alipay是HTTPS的頁面,Chrome不會去預(yù)拉取。

一個(gè)預(yù)拉取的頁面雖存在后不可見,實(shí)際上它是在正常解析。假如說我預(yù)拉取登陸頁面,登陸頁面有很多資源,比方說有圖片,有CSS文件,JS文件。它 是從上往下正常的會被解析,解析的過程中,這個(gè)頁面沒有顯現(xiàn),但是它實(shí)際上是存在的。在HTML5里面,可通過 document.visibilityState得到當(dāng)前頁面狀態(tài),通常頁面有兩種狀態(tài),可見與不可見,但是現(xiàn)在有一個(gè)新的狀態(tài),叫做預(yù)渲染的狀態(tài)。可 以直接通過document.visibilityState 是否等于 prerender 來判斷頁面是否在預(yù)渲染狀態(tài)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 许昌市| 洛宁县| 永靖县| 中江县| 永康市| 永川市| 长宁区| 乐业县| 巩留县| 肥东县| 沁源县| 阿图什市| 太保市| 邵阳县| 瑞昌市| 安吉县| 荥阳市| 平泉县| 阳西县| 壤塘县| 香港| 会宁县| 亳州市| 虎林市| 景谷| 通山县| 布尔津县| 三亚市| 玉龙| 云阳县| 弥勒县| 荔浦县| 盘山县| 南江县| 平湖市| 华坪县| 芮城县| 屯门区| 新泰市| 武鸣县| 万宁市|