前端效能優化(JS/CSS優化,SEO優化)

Mr清歌發表於2018-03-04

減少HTTP請求的次數或者請求內容大小

頁面中每傳送一次請求,都會完成請求+響應這個完成的HTTP事務,會消耗效能,造成HTTP連結通道阻塞

  • 1.採用雪碧圖(CSS Split/CSS 圖片精靈)

  • 2.真實專案中,我們最好把CSS或者JS檔案合併壓縮

  • 3.採用圖片懶載入(擴充:資料懶載入

1.開始載入頁面的時候,我們只把首屏或者前兩屏的資料從伺服器端進行請求
2.當頁面下拉,滾動到哪個區域,在把這個區域進行請求,再加上延遲載入
3.分頁技術(分頁展示技術採用的也是是資料的懶載入思想實現的)
複製程式碼

採用CDN加速

CDN:分散式(地域分散式)

關於編寫程式碼的一些優化

  • 1.在編寫的JS程式碼的時候,儘量減少對DOM的操作
【DOM弊端】
1.DOM存在對映機制(JS中的DOM元素物件和頁面中的DOM結構是存在對映機制的)
2.頁面中DOM結構改變或者樣式改變,會觸發瀏覽器的迴流,(對DOM結構重新進行獲取),會觸發DOM的重繪
複製程式碼
  • 2.編寫程式碼的時候,更多的使用非同步程式設計

同步程式設計會導致上面東西玩不成,下面任務也做不了 我們開發的時候可以把某一個區域的模組設定為非同步程式設計,這樣只要模組之間沒有必然的先後順序,都可以獨立進行載入,不會受到上面模組的堵塞影響 尤其是Ajax的請求資料,我們一般都使用非同步程式設計,最好是基於promise設計模式進行管理

  • 3.在真實專案中,我們儘可能避免一次性迴圈過多資料,尤其是避免while導致的死迴圈

  • 4.CSS選擇器優化

1.儘量減少標籤選擇器的使用
2.儘可能少用ID標籤,多使用樣式類選擇器(通用性強)
3.減少選擇器前面的字首
4.儘量使用CSS3動畫,CSS動畫都開啟了硬體加速

  • 5.避免使用CSS表示式

  • 6.減少頁面中的冗餘程式碼,儘可能提高方法的重複使用率:‘低耦合 高內聚’

  • 7.最好CSS放在head中,JS放在BODY尾部,讓頁面載入的時候,先載入CSS,再載入JS

  • 8.避免使用eval

1.效能消耗大
2.程式碼壓縮後,容易出現程式碼錯亂問題
複製程式碼
  • 9.儘量減少閉包的使用

  • 10.善於使用事件委託

  • 11.編寫程式碼儘可能使用設計模式來構建體系

  • 12.CSS中減少對濾鏡的使用

SEO優化技巧

  • 1.頁面中杜絕出現死連結(404頁面)(伺服器處理)

  • 2.避免瀏覽器中異常錯誤的丟擲

  • 3.增加關鍵詞優化

  • 4.對於不經常更新的資料,最好採用瀏覽器的304快取做處理

  • 5.使用字型圖示代替一些頁面中的位置

擴充套件:

  • 如果當前頁面中出現了AUDIO或者VIDEO標籤,我們最好設定它們的preload=true:頁面載入的時候,音訊視訊資源不進行載入,播放的時候進行載入

preload=auto preload=metadata

  • 在客戶端和伺服器端進行資料通訊的時候,我們儘量使用JSON格式進行資料傳輸

相關文章