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