我有一个使用 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,因此当它更新时,它不会保留第一组数据。