我正在尝试复制一个场景,其中网页包含多个区域,每个区域都通过API调用进行更新,并每X秒刷新一次。
window.setInterval(function() {
console.log("interval start");
getData;
console.log("interval end");
}, 5000);
//for (i = 1; i <= 3; i++) {
// console.log(i);
// setTimeout(getData, 5000);
//}
function getData(url, id) {
console.log("getData start");
$.get(url, function(data) {
console.log('data=' + data);
$(id).html(data);
});
};
getData('@Url.Action("GetTemperature", "SomeData")', '#temp');
getData('@Url.Action("GetStockPrice", "SomeData")', '#stock');
getData('@Url.Action("GetStateName", "SomeData")', '#state');
getData('@Url.Action("GetARandomDate", "SomeData")', '#myDate');
以下是日志:
- getData开始
- AjaxTimer:95 getData开始
- AjaxTimer:95 getData开始
- AjaxTimer:95 getData开始
- AjaxTimer:98 data = 188
- AjaxTimer:98 data = Vermont
- AjaxTimer:98 data = 88
- AjaxTimer:98 data = 2014-08-26T00:00:00
- AjaxTimer:83次间隔开始
- AjaxTimer:85间隔结束
- AjaxTimer:83次间隔开始
- AjaxTimer:85间隔结束
- AjaxTimer:83次间隔开始
- AjaxTimer:85间隔结束
getData
不被第二次调用。我不确定这里哪里出问题了。
答案 0 :(得分:0)
您的setInterval
是这样的:
window.setInterval(function () {
console.log("interval start"); // Log to console
getData; // A variable
console.log("interval end"); // Log to console
}, 5000);
JavaScript中的所有函数调用必须以()
结尾,因此只需将中间行更新为
getData();
和getData将由时间间隔调用。