Javascript 什么';在jQuery中,每5秒调用一个函数最简单的方法是什么?
JQuery,如何每5秒调用一个函数 我正在寻找一种在幻灯片中自动更改图像的方法Javascript 什么';在jQuery中,每5秒调用一个函数最简单的方法是什么?,javascript,jquery,jquery-plugins,timer,Javascript,Jquery,Jquery Plugins,Timer,JQuery,如何每5秒调用一个函数 我正在寻找一种在幻灯片中自动更改图像的方法 如果可能的话,我宁愿不安装任何其他第三方插件。您不需要jquery,在纯javascript中,以下内容可以工作 var intervalId = window.setInterval(function(){ /// call your function here }, 5000); 要停止循环,可以使用 clearInterval(intervalId) 您可以使用setInterval在页面上注册间隔
如果可能的话,我宁愿不安装任何其他第三方插件。您不需要jquery,在纯javascript中,以下内容可以工作
var intervalId = window.setInterval(function(){
/// call your function here
}, 5000);
要停止循环,可以使用
clearInterval(intervalId)
您可以使用setInterval在页面上注册间隔,即:
setInterval(function(){
//code goes here that will be run every 5 seconds.
}, 5000);
setInterval
和setTimeout
都可以为您工作(正如@Doug Neiner和@John Boker现在写的都指向setInterval
)。有关这两个问题的更多解释,请参阅,以了解您最喜欢哪一个问题以及如何停止每一个问题。关于第一个答案,请看一点提示。如果您的函数已经定义,请引用该函数,但不要调用它!!!所以不要在函数名后面加括号。就像:
my_function(){};
setInterval(my_function,10000);
上面提到的函数执行,不管它是否在上一次调用中完成,一旦执行完成,这个函数每x秒运行一次
// IIFE
(function runForever(){
// Do something here
setTimeout(runForever, 5000)
})()
// Regular function with arguments
function someFunction(file, directory){
// Do something here
setTimeout(someFunction, 5000, file, directory)
// YES, setTimeout passes any extra args to
// function being called
}
订阅setInterval()并使用clearInterval()停止forever循环的一个很好的示例:
function myTimer() {
console.log(' each 1 second...');
}
var myVar = setInterval(myTimer, 1000);
调用此线路以停止循环:
clearInterval(myVar);
您可以使用window.setInterval和time必须以毫秒为单位定义,在以下情况下,函数将在每秒钟(1000毫秒)后调用
var时间=3670;
setInterval(函数(){
//天、小时、分钟和秒的时间计算
var h=数学下限(时间/3600);
var m=数学下限(时间%3600/60);
var s=数学下限(时间%3600%60);
//使用id=“demo”在元素中显示结果
document.getElementById(“demo”).innerHTML=h+“h”
+m+“m”+s+“s”;
//如果倒计时结束,写一些文字
如果(时间<0){
净间隔(x);
document.getElementById(“demo”).innerHTML=“过期”;
}
时间--;
}, 1000);
谁说我不能每2秒刷新一次:我会在你的代表没有上限时等待+1,等待你对问题的快速回答,同时我会+1你的评论,因为我的问题提供了如此丰富的信息:)不要忘记clearInterval()停止execution@Alucard询问者没有说明它是否需要停止,所以我说不需要。@andrewb然而,它对其他发现这个问题并需要clearInterval()的人来说是有用的。是的,我把它修好了,尝试输入得太快,知道它会很快得到回答:)你的开场白仍然引用了setTimeout:)好吧,谢谢:)天晚了。疲劳时需要停止回答问题。您可以在函数中再次调用setTimeout
。。我以前就是这样做的><我想它不可能是匿名函数。除非有某种调用我不知道的函数。RIP迟了一分钟回答,并且“如果可能的话,我宁愿不安装任何第三方插件”少了450票+1票。@nickf:因为它很幽默,因为jQuery已经是第三方了?(但不是真的,因为我肯定他已经在用jQuery做其他东西了)@Mark,呵呵,不,我不是在讽刺,只是我看到很多人直接跳到插件上,即使他们的问题可以用几行简单的javascript解决。几行奇怪的黑客,你永远不知道它会在哪种浏览器中工作。请注意,对于那些希望将此技术与AJAX请求结合使用的人,不要这样做。让页面上的每个用户每N秒调用一次服务器相当于自己使用DDoS。如果您需要保持服务器和UI同步,请改用WebSocket。如果您不调用它一次,第一次调用将在10000毫秒后进行。如果你现在就想要一个,你仍然可以正常地叫它一次;我想知道为什么我的函数很久没有被调用了。幸运的是我偶然发现了这个答案+1感谢演示如何清除特定间隔
<script>
var time = 3670;
window.setInterval(function(){
// Time calculations for days, hours, minutes and seconds
var h = Math.floor(time / 3600);
var m = Math.floor(time % 3600 / 60);
var s = Math.floor(time % 3600 % 60);
// Display the result in the element with id="demo"
document.getElementById("demo").innerHTML = h + "h "
+ m + "m " + s + "s ";
// If the count down is finished, write some text
if (time < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
time--;
}, 1000);
</script>