Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';在jQuery中,每5秒调用一个函数最简单的方法是什么?_Javascript_Jquery_Jquery Plugins_Timer - Fatal编程技术网

Javascript 什么';在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,如何每5秒调用一个函数

我正在寻找一种在幻灯片中自动更改图像的方法


如果可能的话,我宁愿不安装任何其他第三方插件。

您不需要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>