高性能網(wǎng)站建設(shè)的幾大原則

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

今日大致瀏覽了一下《High Performance Web Sites》。本書的中文版是《高性能網(wǎng)站建設(shè)指南》。
本書另有對其中個(gè)別問題深入探究的進(jìn)階篇《Even Faster Web Sites》,中譯《高性能網(wǎng)站建設(shè)進(jìn)階指南》。
作者介紹上面的豆瓣鏈接中有,就不再照搬過來了。
這里附上電驢里的下載地址http://www.verycd.com/topics/2767534/這里附上115下載地址:http://u.115.com/file/aq3mlxri這本書中給出了14條網(wǎng)站性能提升的原則,每個(gè)原則獨(dú)立成章,配有示例。這些原則大多數(shù)都非常實(shí)用,適合站點(diǎn)架構(gòu)師、前端工程師。其中對于前端工程師的意義更大一些。
這次看的是原版。我對于Web開發(fā)較缺乏實(shí)踐經(jīng)驗(yàn),加之看得匆忙,因此可能存在遺漏、表述不當(dāng)之處,希望廣大網(wǎng)友不吝指正。
原則1 減少HTTP請求數(shù)
構(gòu)造請求、等待響應(yīng)需要時(shí)間,因此請求數(shù)量越少越好。減少請求的總體思路就是合并資源,減少顯示一個(gè)頁面需要的文件數(shù)。
1. Image Map
通過設(shè)置標(biāo)簽的usemap屬性與使用標(biāo)簽可以在一幅圖片上切分出多個(gè)區(qū)域,指向不同的鏈接。比起使用多幅圖片分別構(gòu)造鏈接減少了請求數(shù)。
2. CSS Sprite(CSS貼圖整合/貼圖拼合/貼圖定位)通過設(shè)置元素的background-position樣式做到。一般用于界面圖標(biāo)。典型的可以參考TinyMCE編輯器上方的那些小按鈕。多個(gè)小圖實(shí)質(zhì)是從一個(gè)統(tǒng)一的大圖通過不同的偏移量裁剪而來,這樣加載界面上的眾多按鈕實(shí)際上只要請求一次(請求大圖一次),從而減少HTTP請求數(shù)。
3. Inline Image(內(nèi)聯(lián)圖片)
的src中不指定外部圖片文件的URL,而是直接將圖片信息放入。例如src="data:image/gif;base64,R0lGODlhDAAMAL..."某些特殊情況下有用(例如一個(gè)不大的圖片僅在當(dāng)前頁面用到)。
原則2 利用多線路CDN
為你的站點(diǎn)提供多種線路(例如國內(nèi)電信、聯(lián)通、移動(dòng))、多個(gè)地理位置(北方、南方、西部)的訪問,使得所有用戶都能夠快速訪問。
原則3 利用HTTP Cache
給不頻繁更新的資源(例如靜態(tài)圖)加較長的Expires頭信息,這些資源一經(jīng)緩存,未來很長時(shí)間都可以不再重復(fù)傳輸了。
原則4 使用Gzip壓縮
使用Gzip壓縮HTTP報(bào)文,減小體積,減少傳輸時(shí)間。
原則5 將樣式表置于頁面前部
先加載樣式表,這樣頁面渲染得以較早開始,給用戶頁面加載較快的感覺。
原則6 將腳本置于頁面尾部
原因同5,先處理頁面顯示,頁面渲染較早完成,而腳本邏輯稍后執(zhí)行,這樣給用戶頁面加載較快的感覺。
原則7 避免使用CSS表達(dá)式
過于復(fù)雜的JavaScript腳本邏輯、DOM查找、選擇操作將會(huì)降低頁面處理效率。
原則8 將JavaScript與CSS作為外聯(lián)資源
這似乎與原則1中的合并思想相悖,但其實(shí)不然:考慮每個(gè)頁面都引入了一個(gè)公共的JavaScript資源(例如jQuery或是ExtJS這樣的JavaScript庫),單就一個(gè)頁面的表現(xiàn)來看,內(nèi)聯(lián)(即將JavaScript嵌入HTML)頁面將比外聯(lián)(使用