我对JavaScript很新,我正在通过Daniel Shiffman的p5和视频来学习它。
我一直在寻找一种方法来每分钟更新一次程序来检查天气api,所以我不必自己刷新页面。
我知道这里已经有了这个问题的答案,但是没有一个对我有意义,因为我对JS很新。
所以如果你能用一个ELI5(“解释它就像我五岁”那样的话来回答它那么好。
答案 0 :(得分:15)
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)
答案 1 :(得分:2)
在普通的Javascript中,您可以使用setInterval:
var intervalID = window.setInterval(checkWeatherAPI, 60000);
function checkWeatherAPI() {
// go check API
console.log("checking weather API");
}
如果您要运行上述操作,则回调函数:checkWeatherAPI,将每分钟运行一次,或者永久运行60,000毫秒,完整文档在此处:WindwTimers.setInterval
要停止间隔,您只需运行此行:
window.clearInterval(intervalID);
答案 2 :(得分:1)
WM_CLOSE
答案 3 :(得分:0)
选择setInterval
或setTimeout
是否基于您的需求和要求,稍后会对下面的差异进行解释。
setInterval
。对于一个实例,您每隔5秒设置一次API调用,并且由于网络延迟或服务器延迟,您的API调用需要6秒,下面的setInterval
将在第一个API完成之前触发第二个API调用。
var timer = setInterval(callAPI, 5000);
function callAPI() {
// TO DO
triggerXhrRequest(function(success){
});
}
相反,如果您想在第一次API调用完成后5秒钟后触发另一个API调用,则可以更好地使用setTimeout
,如下所示。
var timer = setTimeout(callAPI, 5000);
function callAPI() {
// TO DO
triggerXhrRequest(function(success){
timer = setTimeout(callAPI, 5000);
});
}
setTimeout
将在n
秒后调用一次。因此,您可以控制何时可以按上述方式调用下一个。
MDN文档