0
我使用Slickgrid在html网站上显示数据。用户可以选择一个表格和列。Javascript Slickgrid超时
该代码运行良好,但一个表包含大约30列和大约500000行。现在脚本花费太长时间,我得到一个Firefox的JavaScript超时。
我知道,我可以使用setTimeout()
,但我不知道如何使用这个功能。 我该怎么做,以避免JavaScript超时?
function addRow(){
for (var i=0;i<arrayRow.length;i++){
var row ='{"id": "' + i + '", ';
for (var j=0;j>arrayColumn.length;j++){
row = row + '"' + arrayColumn[j] + '" : "' + array[j]+[i] + '",'
}
row = row.substr(0,row.length-1);
row = row + '}';
data[i]=JSON.parse(row);
}
if (i==arrayRow.length){
dataView.setItems(data);
}
}
EDIT1:我已经更新了我的代码,但现在我得到的错误“太多递归”。
i=0;
function addRow(){
if (i<arrayRow.length){
var row ='{"id": "' + i + '", ';
for (var j=0;j>arrayColumn.length;j++){
row = row + '"' + arrayColumn[j] + '" : "' + array[j]+[i] + '",'
}
row = row.substr(0,row.length-1);
row = row + '}';
data[i]=JSON.parse(row);
i++;
if(i%100000==0){
setTimeout(addRow,0);
} else {
addRow();
}
}
if (i==arrayRow.length){
dataView.setItems(data);
}
}
可能重复( http://stackoverflow.com/questions/672732/prevent-long-running-javascript-from-locking-up-browser) – 2014-10-02 11:10:07