按间隔更新Javascript变量

时间:2013-01-28 17:28:03

标签: javascript jquery jquery-isotope

我有一个脚本,它使用JSON数据在容器div中创建元素。我有另一个脚本,它定期更新JSON数据,但是我在尝试使用setInterval将新的JSON数据在创建的元素中自动更新(没有刷新页面)时遇到了问题。

我正在创建变量:

function renderElement(ajaxResponse) {
var responseArray = JSON.parse(ajaxResponse);
var container = document.getElementById("container");

然后我使用JSON数据来创建我的html:

for (var i = 0; i < responseArray.length; i += 1) {

var element = document.createElement("div");
element.className = "element";
}

var Score = document.createElement("p");
Score.className = "Score";
Score.innerHTML = responseArray[i].Score;

element.appendChild(Score);
container.appendChild(element);

}
}

当我刷新页面时,JSON中其他脚本更新的数据确实会出现,但是我想在不刷新页面的情况下显示新数据。我一直在尝试使用setInterval来做到这一点。我遇到的一个问题是JSON数据必须在页面加载时可用,然后然后每5秒更新一次,否则更广泛的脚本(同位素)将不会自行绘制。

在下面的回复之后,我将以下内容放在我的代码的各个部分中(在函数内,在函数之后等)。页面加载,但我仍然无法在更新JSON时更新innerHTML元素(不刷新页面):

setInterval(function() {renderElement(ajaxResponse); }, 5000);

非常感谢任何帮助

更新:

我已将其更改为:

setInterval(function() {renderElement(json); }, 5000);

所以我的ajaxResponse变量正在使用最新数据进行更新,然后尝试添加

setInterval(function() {renderElement(ajaxResponse); }, 10000);

在更新innerHTML元素的函数中。我认为它的工作,因为我可以看到正在绘制多个实例(在原件后面)。我现在正试图“清除”元素div,所以当它更新时,它不会保留第一组数据。

1 个答案:

答案 0 :(得分:0)

你应该调用renderElement函数而不是ajaxResponse,但要调用setInterval中带参数的函数,你需要使用functon() { FuncHere() }

这是完整的代码:

setInterval(function() {renderElement(ajaxResponse); }, 5000);