背景信息:我每分钟检索一个XML文件,解析它,并将内容附加到html表中。
这是setInterval函数
setInterval(function(){
data.length = 0;
deleteRows();
ajaxGet('rest/room/wakeup/?type=pending', parsePending);
appendAll();
console.log("refreshed");
}, 60000);
数据是一个数组数组。每个子数组都包含我要追加的表的一行。数据是全球声明的。
ajaxGet检索XML文件并调用解析函数来处理并将每个行数组推送到数据数组中。解析函数将每一行记录到控制台,因此我知道它正常工作。
现在出现问题。
function appendAll(){
for (var i = 0; i < data.length; i++){
var row = "<tr>";
console.log("row appended");
for (var key in data[i]){
row = row + "<td>" + data[i][key] + "</td>";
console.log("appended" + data[i][key]);
}
row = row + "</tr>";
$("#pending_wakeups tbody").append(row);
}
console.log("appended");
}
如果setInterval中的任何函数在appendAll()之前清除数据,data.length将返回0.尽管解析函数在appendAll()之前将完整数组返回到控制台,但它拒绝为我工作。