提起Web前端性能優化的問題,前端開發人員非常熟悉,對于一個網站而言,即使內容和功能再優秀,如果用戶需要花費很久的時間才能打開,這樣遲早會消耗用戶的耐心,并最終失去用戶。
那如何才能優化前端性能?歸納為三步
一、關鍵資源字節數字節數也就是通常說的減少資源文件(js、css、image、video...)的大小。
1、壓縮
前端使用uglify混淆壓縮
后端開啟gzip
對圖片進行壓縮,使用壓縮比例更高的格式(WebP)
2、緩存
強緩存(http狀態碼:200),不用請求服務器直接使用本地緩存,協商緩存(http狀態碼:304),使用時先請求服務器若被告知緩存沒過期則使用本地緩存,不用下載資源,使用localstorage對數據進行存儲。
3、針對首屏優化
對非關鍵資源延遲加載、異步加載,減少首屏資源大小
二、關鍵資源連接數1、合并請求
使用http2.0的多路復用合并請求配置combo,在無法使用http2.0的情況下作為一種合并資源請求的手段。
2、減少圖片請求數
使用spite圖,使用svg-symbol。
3、針對一些場景采用css、js內聯的方式。
4、使用強緩存減少了一次服務器請求。
5、非關鍵資源延遲、異步加載,減少了首屏資源連接數。
三、關鍵渲染路徑1、bigpipe分塊輸出
這里主要是因為要完成一整個頁面的輸出后端需要處理很多個任務,我們可以將這些多個任務進行分塊,誰先完成誰就先輸出,最終通過JS回填的方式輸出DOM節點,這種方式主要解決了直出頁面阻塞的問題。
2、bigrender分塊渲染
常規的手段就是采用前端模板渲染頁面,針對首屏時間主要減少了首次構建DOM樹時的節點數
3、針對reflow,repaint,composit路徑處理。
4、涉及到動畫時關于layer的概念render layer、graphics layer。
5、css放在頭部、js放底部避免阻塞DOM樹的構建,關于css、js的位置對于頁面渲染的影響大家可以關注下相關的文章。核心:css資源不會阻塞DOM樹的構建但會阻塞DOM的渲染,JS會阻塞DOM樹的構建,CSS會阻塞JS的執行。
以上就是針對Web前端性能優化歸納出的解決方案。更多Web前端學習資料,關注“武漢千鋒”微信公眾號領取。
舉個例子:運維研發人員
一個全面的前端是運維開發的關鍵,因為很有可能不會有產品經理,不會有logo等UI設計人員,而且需要懂django模板(沒幾個前端懂這個),所以懂前端的運維開發一定懂django或者其他框架, 也就是能寫后端代碼了,而且得會寫js/css等。
在寫前端之前,首先得選個UI框架,比如Bootstrap、easyUI,這兩個是非常基礎常用的,在開發企業內部系統首選,我會選lazyUI/騰訊藍鯨UI布局,bootstrap 作為補充使用。
一般是不可以的,游戲前端主要是美工美工,web前端主要是編寫網頁代碼實現前端頁面。兩者的不同點如下:
1、游戲前端:一般是設計游戲中的任務或者畫面場景,要求有較高的美術功底,其主要任務是設計或者制作圖片場景,一般是不涉及代碼的編寫和游戲的制作,工作類似與web前端中的美工。
2、web前端現在和前端美工一般是獨立工作的,web前端需要將web美工制作的網站效果圖制作成為網站頁面,需要編寫html、css、js等代碼來完成工作。
3、座椅游戲前端可以轉行做web前端美工而不能做web前端工程師,現在美工和前端工作是完全分離的。