我有一个类似你在下面看到的JSON,我想“保持活力”。我想不断查询服务器(连续间隔“刷新”,比如30秒)并相应地更新页面上显示的内容。 JSON如下所示:
[
{
"Name": "Paul",
"Date": "2012-10-26",
"Score": 8
},
{
"Name": "Janet",
"Date": "2012-10-24",
"Score": 18
},
{
"Name": "Rick",
"Date": "2012-10-26",
"Score": 13
}
]
我要显示的当前(静态)版本是:
<body>
<script>
$.getJSON('myjson.json', function(data) {
for (var i in data) {
var Name = data[i].Name;
var Score = data[i].Score;
}
var output = "<ul>";
for (var i in data) {
output += "<li>" + Name + "--" + Score;
}
output += "</ul>";
document.getElementById("placeholder").innerHTML=output;
});
</script>
<div id="placeholder"></div>
</body>
这当然会显示数据,但是当json在服务器上更改时(不刷新页面),如何将更改“流式传输”为“得分”?
这是什么被称为民意调查?
感谢任何帮助。谢谢
答案 0 :(得分:1)
您只需要使用计时器,或者更具体一点,setInterval()
...
<script>
function getData() {
$.getJSON('myjson.json', function(data) {
for (var i in data) {
var Name = data[i].Name;
var Score = data[i].Score;
}
var output = "<ul>";
for (var i in data) {
output += "<li>" + Name + "--" + Score;
}
output += "</ul>";
document.getElementById("placeholder").innerHTML=output;
});
}
setInterval(getData, 30000);
$(function() {
getData();
});
</script>
上述脚本将在document.ready运行getData()
函数,然后每30秒运行一次,并使用返回值更新#placeholder
元素。
答案 1 :(得分:0)
没有任何铃声或口哨声,您可以将整个事物包装在一个函数中,然后使用setInterval或setTimeout调用它,以便它以给定的间隔运行代码。
基本示例:
function getData(){
... your code ...
setTimeout( getData, 3000 ); // Get data and refresh page every 3000 ms (3 seconds)
}
//调用函数启动数据收集
getData();