實戰錄 | 前端性能優化二三事兒

雲端衛士的新欄目《實戰錄》將會定期分享一些我們的工程師夥伴們在產品研發的過程中總結的實踐經驗,希望對於熱愛技術且關注安全領域的受衆有所裨益。本期分享人爲雲端衛士工程師束海瑞,將帶來前端性能優化的分享。

目標前端優化的目標

1.從用戶角度而言,優化能夠讓頁面加載的更快,對用戶的操作相應更及時,給用戶帶來更爲友好的體驗,提高我們產品的市場競爭力。

2.從公司角度而言,優化減少了頁面請求數,降低了系統負載,減少了資源所佔的帶寬,節省了客觀的費用。所以適當的前端優化是重要的,也是必須的。

原則前端優化的原則

1.性能優化的時期不宜過早,從項目實踐的角度考慮,過早的性能優化可能會給後期的項目擴展和維護帶來麻煩。

2.避免過度的性能優化,特別是破化了了代碼可讀性和可維護性的性能優化更不可取。

本文將從工程,代碼,策略方面對前端性能優化的一些方面展開簡單論述。工程工程指的是我們通過工程化的方法對前端項目,運行環境進行調優。工程化的特點是簡單易行。它不需要修改任何代碼就可以應用在已有的任何前端項目上,是一種最直接和有效的前端優化方案。

服務器(server)端

1.開啓web服務器的gzip壓縮功能,減少網絡傳輸資源消耗,提高網頁加載速度

2.合理設置頁面靜態資源的過期時間,充分利用瀏覽器緩存,減少網絡資源加載

客戶端(client)端

1.壓縮,合併頁面靜態資源,減少網絡傳輸消耗(gulp)

2.利用瀏覽器加載策略,使用多域名提高靜態資源併發傳輸數量(cdn)

3.引入模塊加載方案,以異步,非阻塞的方式對頁面資源進行加載(require)代碼代碼指的的是通過提高代碼質量,優化相關算法,提升頁面性能。代碼級的性能優化涉及的方面比較多。我們沒有辦法保證我們的所有代碼都是高性能的,但是我們可以在項目出現性能的時候對相關核心代碼進行重構來提升整體的項目性能。前端方面比較容易出現性能爲題的方面通常在一下方面。

DOM Scripting

DOM操作是前端開發工作中一個特別頻繁的操作,合理的DOM操作可以幫助我們有效的提升頁面性能。關於DOM操作,要求我們要掌握和了解頁面的Reflow和Repaint原理,儘量避免頁面的Reflow。DOM事件也是性能優化中一個比較重要的方面,我們要充分利用事件的冒泡特性進行事件綁定,避免大量的事件綁定,減少不必要的開銷。

Data Access熟悉瞭解JS的閉包,原型璉等語言結構,優化數據存取操作。代碼優化是個長期的過程,涉及到的方面也非常多,這裏推薦大家一本書《High Performance JavaScript》。

策略當在資源一定的情況下,我們可以通過一定的策略,優化前端性能,提升用戶體驗。按需加載按需加載頁面相關模塊,避免不必要的資源消耗異步加載對頁面中比較耗費資源的模塊進行異步加載,從而提升頁面整體的加載速度。異步渲染當頁面內容比較多時,只對頁面當前的可視區域進行渲染,可顯著提高頁面首屏展現速度。資源銷燬對於單頁面應用,應及時銷燬閒置的或者不可見的組件資源。

緩存充分利用高級瀏覽器特性,sessionStorage, localStorage對於頁面元素進行緩存。頁面展現從設計方面,優化頁面展現方式。避免太多的圖表,動畫出現在同一個頁面,否則再好的優化依然不會有良好的性能。當在具體選擇使用策略的時候,我們可以針對具體的情況,綜合使用一種或幾種策略進行優化。

最後前端優化涉及的方面還有很多,在具體的實踐中,我們也可以發揮我們的想象和創新。不論我們使用何種策略和方法,只要最終達到了效果,就是好方法。正所謂白貓黑貓,能逮到老鼠就是好貓。

發佈了44 篇原創文章 · 獲贊 6 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章