Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每隔一段时间更新Javascript变量_Javascript_Jquery_Jquery Isotope - Fatal编程技术网

每隔一段时间更新Javascript变量

每隔一段时间更新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");

我有一个脚本,它使用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);

}
}
非常感谢您的帮助

更新:

我已将其更改为:

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);