前端優化,包括css,jss,img,cookie
前端優化,來自某懶觀看麥子學院視頻的筆記。
- 儘量減小HTTP的請求數
- 使用CDN
- 添加Expirs頭,或者Cache-control
- Gzip組件壓縮文件內容
- 將CSS放在頁面上方
- 將腳本放到頁面下方
- 減小CSS中Expressions:只在IE中使用,在css中經過js動態賦值
- 將javaScript和CSS獨立成外部文件
- 減小DNS查詢
- 壓縮javaScript和CSS
- 避免重定向
- 移除重複的腳本
- 配置實體標籤(ETags):客戶端請求文件,服務器讀取文件標籤,若是未修改就直接返回304.
- 使用AJAX緩存
- 避免空的src href屬性
- 儘早地刷新緩衝
- 使用get來完成ajax
- 延遲加載:分批加載
- 預先加載:客戶端緩存js文件等
- 減小DOM元素
- 避免404頁面
- 高效縮寫CSS
- bigpipe技術,分層顯示,先出框架,再加載框架內的物體。
- 使用
替代@import
- 避免使用濾鏡:只在舊版IE中使用,修正圖片問題
- CSS無圖片技術:css image(css引入背景圖片比較佔資源,若是用css繪製相似小三角這樣的簡單圖片,則大大減負)
- smush.it、轉png格式壓縮圖片大小
- 合併和拆分圖片:合併:CSS sprites 將小圖片合成大圖片,再用背景定位顯示圖標。拆分:多線程拆分後下載。
- 多域名下載圖片
- IE6緩存背景圖片
- 預加載圖片
- 減少cookie的體積,移除沒必要要的cookie(注意在適應級別上設置cookie,以便子域名不受影響),設置cookie域
- 靜態資源使用無cookie域名
- 設置合理的cookie過時時間
- 優化js循環語句。將length屬性抽取至判斷語句以外。for(in)效率最差,for(;;)=while();
- js使用閉包進行緩存
- js再也不循環中建立函數。改成抽取函數後調用
- js手動消除引用,告訴垃圾回收器。不推薦delete函數,推薦使用=null的方法。
- 慎用js全局對象,由於不會被垃圾回收
- js綁定的事件不須要後取消綁定。推薦用on,防止屢次綁定
- 慎用js閉包,可能會致使內存泄漏
- js少用eval,特別是在循環內。json[i][變量]=1這樣的語句不要使用eval
- 使用json格式初始化js的對象和數組。而不是new一個。前者引擎直接解釋,後者調用構造器。
- js使用Math.floor(),「」+的方示進行類型轉換。Math是內部對象
- js使用正則處理字符串比js循環要快,但構建正則對象比較耗時,儘可能抽取後複用。
- 存儲時使用對象仍是數組。鍵值對中值多樣,使用對象。其餘使用數組
- 數組中對象儘可能一致
- 緩存ajax.函數緩存。h5中的sessionStorage(會話級)和localStorage(持久化)
- bool值的斷定,經過率越小越往前。
- 工具yslow、pagespeed
歡迎關注本站公眾號,獲取更多信息