问题遇到的现象和发生背景
JS Bootstrp-table 循环使用‘updateRow’导致内存溢出。
用代码块功能插入代码,请勿粘贴截图
//循环体
data.forEach(row => {
//业务处理...
//更新行数据
$("#" + table.options.id).bootstrapTable('updateRow', {
index: row.orderNo,
row: row
})
})
运行结果及报错内容
运行时浏览器内存占用达到了三个多G甚至四个G
我想要达到的结果
想咨询如何每次循环结束手动释放内存。
我查看了一下方法的源码,是否可以通过重写方法时候避开内存的不及时释放,该如何重写。
下面是bootstrap-table.js里的源码
updateRow (params) {
const allParams = Array.isArray(params) ? params : [params]
for (const params of allParams) {
if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {
continue
}
if (params.hasOwnProperty('replace') && params.replace) {
this.options.data[params.index] = params.row
} else {
$.extend(this.options.data[params.index], params.row)
}
}
this.initSearch()
this.initPagination()
this.initSort()
this.initBody(true)
}