我对JavaScript非常陌生,我通过Daniel Shiffman的p5和视频学习它。JavaScript - 每n秒做一件事
我一直在寻找一种方法来每分钟更新一次程序或者检查天气api,所以我不必自己刷新页面。
我知道这里已经有对这个问题的答案,但是没有一个对我有意义,因为我对JS非常陌生。
所以,如果你可以用ELI5(“解释它就像我五岁”)来回答它,那很好。
我对JavaScript非常陌生,我通过Daniel Shiffman的p5和视频学习它。JavaScript - 每n秒做一件事
我一直在寻找一种方法来每分钟更新一次程序或者检查天气api,所以我不必自己刷新页面。
我知道这里已经有对这个问题的答案,但是没有一个对我有意义,因为我对JS非常陌生。
所以,如果你可以用ELI5(“解释它就像我五岁”)来回答它,那很好。
setInterval()
是您最简单的选择。
看看这个简单的例子:
// Will execute myCallback every 0.5 seconds
var intervalID = window.setInterval(myCallback, 500);
function myCallback() {
// Your code here
}
的更多信息和更多的例子可以在这里找到:https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval(https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval)
感谢您的帮助! –
在普通的香草JavaScript中,你可以使用的setInterval:
var intervalID = window.setInterval(checkWeatherAPI, 60000);
function checkWeatherAPI() {
// go check API
console.log("checking weather API");
}
如果你要运行上面的回调函数:checkWeatherAPI,将每分钟运行一次,或者60,000毫秒econds永远的,完整的文档在这里:WindwTimers.setInterval
要停止的时间间隔,你会简单地运行这一行:
window.clearInterval(intervalID);
选择是否setInterval
OR setTimeout
是根据您的需要和要求如下所述有关的差位。
setInterval
将被调用,而不考虑API所花费的时间。对于您每5秒钟设置一次API调用的实例,由于网络延迟或服务器延迟导致您的API调用需要6秒,以下setInterval
将在第一个API完成之前触发第二个API调用。
var timer = setInterval(callAPI, 5000);
function callAPI() {
// TO DO
triggerXhrRequest(function(success){
});
}
相反,如果你想在5秒钟后触发另一个API调用一旦第一个API调用完成后,可以更好地如下使用setTimeout
。
var timer = setTimeout(callAPI, 5000);
function callAPI() {
// TO DO
triggerXhrRequest(function(success){
timer = setTimeout(callAPI, 5000);
});
}
setTimeout
将被调用一次后n
次秒。所以你可以控制何时可以像上面那样调用下一个。
MDN文档
function doThings() {
//the things i want to happen (or increment)
}
setTimeout(function() {
doThings();
}, 1000);//milliseconds
的Javascript计时器将是一个完美的选择,在这里...检查的setInterval和setTimeout的 – Geeky
有你'的setTimeout读了()'和'setInterval()'? – Pointy
请参阅[* MDN:JavaScript计时器*](https://developer.mozilla.org/zh-CN/Add-ons/Code_snippets/Timers)。 – RobG