https://tw.saowen.com/a/12b7cbfe1c763376d0a0a8441e2b550041802ae33f876df4bf65949c63bd0c70
https://tw.saowen.com/a/ab1d6f6a50f539e2896d2465fc588579f00068406db4fd82e9f269b7e42e59ea
https://juejin.im/post/5adc18896fb9a07ab110c183?utm_source=tuicool&utm_medium=referral
1. script標籤盡量放body尾巴,且body裡面,對使用者來講才不會感受到JS檔下載的時間
2. 少用script標籤,不管內聯外聯
(下载一
个 100KB 的文件比下载四个 25KB 的文件要快)
現今有打包工具可以把我們要的檔案濃縮成1個JS檔
3.用非阻塞方式 延期脚本 關鍵字 defer
4.用非阻塞方式 动态脚本元素
5.用非阻塞方式 XHR 脚本注入
6.用非阻塞方式 用第三方的庫
7.閉包函數相對來講開銷更大,注意記憶體洩漏
8.少用try catch、 with
9.不要直接改變參數的值,函數對參數操作相對高
10.物件和陣列開銷比一般變數高
11.非事先定義好的物件屬性開銷比定義好的大
var dog = {
name:OOO
}
dog.age = 10;開銷相對大
12.區域變數開銷較小,全域變數需查找開銷大
13.DOM很慢,能少掉用DomAPI就少調用(通常能在JS做的都先在JS做掉),同時在和JS操作時(通常是事件綁定function)注意閉包
14.注意DOM節點創建、操作、複製和CSS等渲染
15.for in 比一般的for效率差
16.有關容器寬高的會觸發重排、有關顏色的會觸發重繪
17.大動畫重排會影響到整個渲染樹
18.利用事件托管比在N個元素上綁定還要有效
19.陣列、物件的查表法比switch快
20.少用遞迴,任何可用遞迴的演算法都可用迭代實現
21.定時器耗CPU建議額外包裝一個定時器,整個網頁只用這一個定時器
22.瀏覽器請求如果不考慮安全等等因素的話,get優於post,因為瀏覽器會緩存
23.避免用eval()、Function()構造函數、setTimeout() 這些可以傳字串進去執行的函數,因為他都需要在創建一個編譯器實例,很慢
24.使用字面量的方式來創建陣列和物件
25.多用CDN外聯可根據地理位置減少網路延遲
26.壓縮JS檔
快速喵過~~~
高性能javascript