1.常見性能優化方法有哪些?給出不少于5條實際可行的方案?
- 為什么要性能優化?如果只是一個js,css,html你根本沒必要進行性能優化,但是現實告訴我們這個幾乎不可能,隨便一個網頁就要加載多個css,js,img資源,這加載總是要耗時間把,所以性能優化就是必要,采取一些方法來使文件的加載速度更快,或是減少HTTP的請求來達到提高用戶體驗的終極目的。
- 方法1:減少HTTP請求
1.使用前端工具r.js,gulp,webpack 將css,js的代碼合并
2.就網頁的小icon圖片壓縮合并雪碧圖,同時大圖也要壓縮
3.當頁面的圖片很多,使用懶加載 - 方法2:放好css和js文件的位置
1.css文件放在html的頭部,因為CSS 下載、執行時可能阻塞渲染,但不阻塞其他CSS的下載,多個CSS文件會合并下載,讓網頁能顯示在用戶面前,不會出現白屏的現象
2.JS 文件放在html的尾部,因為JS 下載、執行時肯定阻塞渲染,會導致頁面的其他部分無法加載,出現白屏的現象 - 方法3: 使用CDN(Content Delivery Network)內容分發網絡進行靜態加載
1.將一些不經常改動的靜態資源放到CDN里面,這樣當用戶訪問的時候就會去查找最近的CDN服務器去加載資源,可以提高訪問速度。 - 方法4:使用瀏覽器的本地儲存緩存
1.在響應頭中添加Cache-control:max-age=60000(秒),這樣你在60000秒內再次請求同一個資源,服務器不會發送,會告訴瀏覽器繼續使用本地緩存的文件
2.使用expires,設置頁面過期的時間,瀏覽器在規定的時間內使用本地緩存的文件 - 方法5:盡量減少DOM操作
1.使用變量將頻繁的使用的DOM操作保存起來,這是因為DOM操作會導致頁面的重繪和渲染,非常消耗性能
2.綁定事件的時候使用事件代理 - 方法6:避免出現重定向和404的錯誤
- 方法7:優化算法
1.在js的處理中優化查找,排序算法,盡量少使用嵌套循環 - 方法8:服務器開啟Gzip壓縮數據,可以大量減少數據的大小,提高加載速度
-方法9:減少DNS查找次數,節省響應時間 - 方法10:靜態資源使用多個域名
對于圖片、CSS、JS,可使用幾個域名,可以并發加載。