【发布时间】:2017-01-18 21:27:26
【问题描述】:
谁能帮助我,让函数myFunction 每隔X 秒运行一次。如果我只运行一次,该功能就可以完美运行,但是当我开始使用 setInterval 时,它不会每 x 秒运行一次。在下面的示例中,它有时在 5 秒后执行,有时在 8 秒后执行,依此类推。我应该在我的代码中更改什么?我使用的 api 每分钟只授予 30 个请求,我担心这个函数会超过限制,因为有两个 getJSON。
setInterval(function () {
myFunction();
}, 10000);
function myFunction() {
$.getJSON("URL", function (data) {
console.log(data);
$.getJSON("URL", function (data2) {
console.log(data2);
variable1 = data.Departure;
variable2 = data2.Departure;
text = "";
variable3 = variable1.concat(variable2);
variable3.sort(function (a, b) {
return new Date('2017/01/16 ' + a.time) - new Date('2017/01/16 ' + b.time);
})
console.log(variable3);
for (var i = 0; i < variable3.length; i++) {
text += variable3[i].name.substring(13, 19) + " departure " + variable3[i].time.substring(0, 5) + " from " + variable3[i].stop.substring(8) + "<br>";
}
document.getElementById("Textn").innerHTML = text;
console.log(text);
});
});
}
myFunction();
【问题讨论】:
-
setTimeout 函数每 x 秒运行一次。 developer.mozilla.org/es/docs/Web/API/WindowTimers/setTimeout
-
你怎么知道需要 5 秒、8 秒等?
-
@jaikl 你怎么知道你的函数需要多少时间?
-
setTimeout 函数只运行一次@Roy
-
@JamesMonger 我计算了函数运行的时间。至少需要 10 秒才能确定有问题。
标签: javascript json setinterval