在某些时候,需要手动的向表格中插入数据或删除数据。 如果是处理大批量的数据,在执行js代码的时候,效率会很低,造成页面卡死的现象。因此要在js中使用分片技术,利用settimiout方法,间隔的去执行,避免造成浏览器卡死。
相关的示例代码:
在某一段代码中调用:
var rows = gridData.rows;
chunkAdd(rows,addOneRow);
rows就是包含要插入到另一个表格中的数据的数组。addOneRow是具体处理逻辑的方法。
chunkAdd方法定义如下:
/**分片执行,避免长时间占据浏览器内存造成的卡死现象
* array是要处理的数组,process是要执行的方法
* @param treeNode
* @return
*/
function chunkAdd(array,process){
var i=0 ;
var arrLength = array.length;
setTimeout(function() {
process(array[i]);
i++;
if(i<arrLength){
setTimeout(arguments.callee,50)
}
},50);
}
这个方法,50毫秒运行一次,在运行间隙将控制权返回给浏览器,避免了浏览器卡死。
addOneRow 方法就是处理具体的逻辑了,定义如下:
function addOneRow(row){
if(row!=null){
$('#selectedGridTable').datagrid('insertRow',{row: row});
}
}
当处理大量数据导致JavaScript执行效率低下并引起页面卡顿时,可以使用代码分片技术。通过设置setTimeout,间隔执行任务,确保浏览器不会长时间被占用。示例代码展示了如何通过chunkAdd方法分片执行任务,每次间隔50毫秒,将控制权交还给浏览器,防止卡死。addOneRow方法则负责具体的插入行操作。
6964

被折叠的 条评论
为什么被折叠?



