循環中需要注意的
- 對於大量的循環要用for來進行,它是最快的
- 數組內元素定位,
indexOf() > map() > object(),擴展,可以重寫Array.phptotype.indexOf - 遍歷時的淺拷貝,需要另外創建一個新對象進行屬性賦值
filter >> for- `filter > for in >> for
- 數組去數組重復(new Set、for),數據量小時:set 快,大時for快, 數據體量1w: set,100w: for,1000w: for
- 數組去對象重復(reduce、for),
原文
js處理大型數據崩掉解決方案
js中大量操作dom操作,會導致事件響應緩慢甚至卡死瀏覽器
- 循環優化
循環體中包含太多的操作和循環的次數過多都會導致循環執行時間過長,並直接導致鎖死瀏覽器。如果循環之后沒有其他操作,每次循環只處理一個數值,而且不依賴於上一次循環的結果則可以對循環進行拆解,利用chunk函數
function chunk(array, process, context) {
setTimeout(
function() {
var item = array.shift();
process.call(context, item);
if (array.length > 0) {
setTimeout(arguments.callee, 100);
}
}), 100
}
