天天看點

怎麼對網站進行性能方面的優化

1、盡可能減少HTTP請求:圖檔合并 (css sprites),Js腳本檔案合并、css檔案合并

2、減少DNS查詢

DNS查詢服務指域名查找,指将請求的域名轉化為對應的IP位址,就如姓名和門牌号的關系。如輸入www.baidu.com  DNS系統會将此域名轉化為119.75.217.109,然後将IP位址傳回給浏覽器,這個過程會花費一定的時間,影響頁面的加載,是以要盡可能減少DNS查詢。

減少DNS查詢的方法有: 緩存 DNS查找可以改善頁面性能,大多數浏覽器有自己的緩存系統,緩存時間又不一緻,緩存時間越長,DNS儲存的時間越長。

當用戶端中的 DNS緩存都為空時(浏覽器和作業系統都為空), DNS查找的次數和頁面中主機名的數量相同。這其中包括頁面中 URL、圖檔、腳本檔案、樣式表、Flash對象等包含的主機名。減少主機名的數量可以減少DNS查找次數。

減少主機名的數量還可以減少頁面中并行下載下傳的數量。減少 DNS查找次數可以節省響應時間,但是減少并行下載下傳卻會增加響應時間。我的指導原則是 把這些頁面中的内容分割成至少兩部分但不超過四部分。這種結果就是在減少 DNS查找次數和保持較高程度并行下載下傳兩者之間的權衡了。

3、将css放在頁面最上面,将js放在頁面最下面

css放在頁面最上面可以防止頁面出現白屏、閃跳的現象,即減少頁面的首屏出現時間。js的下載下傳和執行會阻塞Dom樹的建構(嚴謹地說是中斷了Dom樹的更新),是以script标簽放在首屏範圍内的HTML代碼段裡會截斷首屏的内容。而且js中可能會對DOM節點進行操作,而這時代碼是自上向下進行執行的,這樣會造成js對相應的元素操作不了。是以js放在頁面的最下面

4、壓縮js和css

減少檔案體積,去除不必要的空白符、格式符、注釋(即對代碼進行格式化)

5、把js和css提取出來放在外部檔案中

這一條要靈活運用,把js和css提取出來放在外部檔案的優點是:減少html體積,提高了js和css的複用性,提高日後的可維護性

缺點:增加了http請求,不過這一點可以通過緩存來解決

什麼情況下将js和css寫在頁面内呢,可以分為幾種情況:js和css代碼比較少;這個頁面不怎麼會通路

6、避免重定向

重定向就是使用者請求的頁面被轉移到了别的地方,浏覽器向服務請請求一個頁面,伺服器告訴浏覽器請求的頁面已經被轉移到另外一個頁面,并告知另一個頁面位址,浏覽器就再發送請求到重定向的位址。這樣會增加伺服器和浏覽器之間的往返次數,影響網站性能。

重定向狀态碼有:301永久重定向   302臨時重定向。304 not modified  并不是真的重定向,它是用來告訴浏覽器get請求的檔案在緩存中,避免重新下載下傳。

7、移除重複腳本

8、配置實體标簽Etag

9、使用ajax緩存

ajax的get和post方法:

隻要是浏覽器的get請求,浏覽器都會使用緩存,對于同一位址的請求,伺服器會發送304狀态碼到浏覽器,浏覽器就會使用緩存中的資料

post的請求每次都會被執行,浏覽器不會緩存

10、使用Gzip壓縮

11、使用CDN(内容分發網絡)

12、在css中避免expression表達式

13、添加expire/cache-control頭

繼續閱讀