web前端性能優化方法總結
一,html語義化
語義化的html是讓標簽做自己該做的事,便於其他開發者閱讀以及使代碼規范,優雅整潔。 也是為了網絡爬蟲更好的解析。
問: 為什么要做到語義化呢?
1. 有利於SEO(是指從自然搜索結果獲得網站流量的技術和過程),有利於搜索引擎爬蟲更好的解析我們的網頁,從而獲取更多的有效信息,提升網頁的權重。
2. 在沒有css的時候能夠清晰的看出網頁的結構,增強可讀性。
3. 團隊合作中,語義化的html更能讓其他開發人員理解和閱讀,便於團隊的代碼維護與修改。
4. 支持多終端設備的瀏覽器渲染。
問: 怎么做到語義化的html呢?
1. 熟記各種html標簽,知道每個html標簽該如何使用。
2. 對應的內容用對應的標簽,如標題,就可選擇<h1>~<h6>這些標簽。
二,減少重復代碼,壓縮css,js代碼大小
1. 你的背景圖片保證不超過3個以上,你的css文件不超過2個,js文件不超過3個。而且良好的遵守web標准的一些規定,css放到head中,js文件放到</body>之前或者之后。
三,背景圖片大小及數量
1. 圖片的大小可以壓縮,盡量選擇比較小的圖片。
2. 可將多張圖片用css精靈之城 css sprites
四,減少http請求,合理設置緩存
1. 合並css,js文件,減少css,js重復代碼,合並圖片等都是為了減少http請求,應為每次http請求的代價都是非常昂過的,所以減少http請求能有效優化訪問性能。
2. 緩存能緩存得更多,緩存得更久,也是可以大大減少http請求,就優化了訪問性能。
五,圖片懶加載(lazyout images)
六,減少cookie傳輸
一方面,cookie包含在每次請求和響應中,太大的cookie會嚴重影響數據傳輸,因此哪些數據需要寫入cookie需要慎重考慮,盡量減少cookie中傳輸的數據量。另一方面,對於某些靜態資源的訪問,如CSS、script等,發送cookie沒有意義,可以考慮靜態資源使用獨立域名訪問,避免請求靜態資源時發送cookie,減少cookie傳輸次數。
七,js中減少DOM操作,避免使用eval和 Function,減少作用域鏈查找(盡量把變量設為局部變量)。
八,CDN加速
CDN(contentdistribute network,內容分發網絡)的本質仍然是一個緩存,而且將數據緩存在離用戶最近的地方,使用戶以最快速度獲取數據。
九,反向代理
1. 傳統代理服務器位於瀏覽器一側,代理瀏覽器將http請求發送到互聯網上,而反向代理服務器位於網站機房一側,代理網站web服務器接收http請求。
2 .反向代理也可以實現負載均衡的功能,而通過負載均衡構建的應用集群可以提高系統總體處理能力,進而改善網站高並發情況下的性能。