# 性能優化 # 參考書:1.高性能網站建設指南 2.高性能網站建設進階指南
---
性能優化能夠從如下幾個方面來優化:
1、網絡
一、DNS. 域名解析服務器
二、CDN. 內容發佈網絡 將靜態資源以外的放在主服務器,
配置不一樣的服務器,縮短距離
三、加載:延時和預加載
2、瀏覽器
一、http:超文本傳輸協議
https:安全傳輸協議 效率不高,耗時高些
二、請求和響應信息:
請求信息:
1>請求行:
http協議版本信息(1.1/1.0),
請求方法:get/post,
路徑等
2>請求頭:
瀏覽器版本信息等
3>空行
4>請求參數
響應信息:
1>狀態行: 狀態碼等
2>響應頭:服務器和瀏覽器之間的通信、緩存、cookie等
3>空行
4>響應消息體:呈如今頁面的
緩存(cache):最佳的解決方案
304頁面沒有發生任何修改(協議緩存);
能夠給靜態資源等不多改的東西,設定一個緩存時間expires,解決頻繁的訪問,減小請求的時間
解決緩存更新的問題:
1>設定LastModified 最後修改時間
2>E-Tag 數字加字母的標識的字符串
3>加一種算法根據內容的索引產生的數字
3、代碼
一、html
佈局:減小table佈局;儘可能減小嵌套層數
二、css
a、選擇器:儘可能減小複合選擇器,由於瀏覽器從右往左解析
b、雪碧圖:sprits技術(圖片分割技術),不能太大
c、合併和壓縮:空格和回車的減小;合成一個css
d、重繪和迴流:迴流:改變某個標籤的樣式,影響其餘標籤(如:寬高,字體大小等)
瀏覽器內核即渲染引擎,解析DOM和css,兩個樹。減小回流次數
e、簡單的動畫可使用css3來代替js
f、圖標字體
三、js
a、節點緩存,減小DOM操做
b、合併和壓縮
四、image
a、合併和壓縮
b、將圖片轉化爲base64
合併和壓縮,雪碧圖可使用自動化構建工具Gruntjs和相應插件 css