每隔一段时间更新Javascript变量
我有一个脚本,它使用JSON数据在容器div中创建元素。我有另一个脚本,它定期更新JSON数据,但我在尝试使用setInterval在创建的元素中自动更新新的JSON数据(而不刷新页面)时遇到了问题 我创建的变量如下所示:每隔一段时间更新Javascript变量,javascript,jquery,jquery-isotope,Javascript,Jquery,Jquery Isotope,我有一个脚本,它使用JSON数据在容器div中创建元素。我有另一个脚本,它定期更新JSON数据,但我在尝试使用setInterval在创建的元素中自动更新新的JSON数据(而不刷新页面)时遇到了问题 我创建的变量如下所示: function renderElement(ajaxResponse) { var responseArray = JSON.parse(ajaxResponse); var container = document.getElementById("container");
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);
}
}
非常感谢您的帮助
更新:
我已将其更改为:
setInterval(function() {renderElement(json); }, 5000);
因此,正在使用最新数据更新我的ajaxResponse变量,然后尝试添加
setInterval(function() {renderElement(ajaxResponse); }, 10000);
在函数中更新innerHTML元素。我认为这是可行的,因为我可以看到多个实例被绘制(在原始的后面)。我现在正试图“清除”元素div,这样当它被更新时,它就不会保留第一组数据。您应该调用renderElement函数而不是ajaxResponse,但是要调用参数在setInterval内的函数,您需要使用
funcon(){FuncHere()}
以下是完整的代码:
setInterval(函数(){renderRelation(ajaxResponse);},5000)代码>您的responseArray是数组变量而不是函数,对吗?如果是这样,则不能将其作为参数传递给setInterval。你需要一个函数,这个函数就是manipulation。你的for循环什么都不做,它是不是应该附加元素?现在您创建了变量元素,当for循环退出时它就会丢失。您的问题完全令人困惑。看起来你只是发布了一些代码中不可用的部分。@ryadavilli-我已经用完整的函数更新了我的帖子,很抱歉混淆了,但是responseArray仍然是一个变量而不是一个函数。非常感谢-应该将代码放在哪里?当我把它放在函数渲染(ajaxResponse){
之后的行上时,加载数据需要5秒钟,然后加载页面,如果JSON被更改/更新,则不会刷新数据。当我把它放在函数渲染(ajaxResponse)之后时{
函数已关闭,如我所愿,它会立即加载,但随着JSON的更改,似乎不会再次更新html。代码可以放在所有调用的顶部,但对于第一个调用,您需要编写rednerElement(ajaxResponse)
在使用setInterval函数之前。您能将代码发布到获得ajaxResponse的地方吗?我一直在尝试在不同的地方对您的代码进行多次迭代,但仍然无法使其正常工作—只需更新您……通常,我不会收到任何错误,但页面似乎挂起,我需要强制重新加载它。
setInterval(function() {renderElement(ajaxResponse); }, 10000);