How to set a timer in javascript

前端 未结 6 811
傲寒
傲寒 2020-12-03 06:21

I want to run the following code:

ajaxUpdate(10);

With a delay of 1 second between each iteration. How can I do this?

相关标签:
6条回答
  • 2020-12-03 06:27

    You can use this JavaScript Timer class.

    0 讨论(0)
  • 2020-12-03 06:28
    var i = window.setInterval( function(){ 
              ajaxUpdate(10); 
     }, 1000 ); 
    

    This will call ajaxUpdate every second, until such a time it is stopped.

    And if you wish to stop it later:

    window.clearInterval( i ); 
    

    If you wish to only run it once however,

    var i = window.setTimeout( function(){ 
              ajaxUpdate(10); 
     }, 1000 ); 
    

    Will do the trick, and if you want to stop it running before it gets around to running once

    window.clearTimeout(i); 
    

    The "window" prefix is not strictly nessecary, but its a good idea, because you never know when somebody else might like to create something else with the same name in visible scope that behaves differently.

    For a complete reference on this, I always find MDC Very Helpful:

    • MDC: window.setInterval
    • MDC: window.clearInterval
    • MDC: window.setTimeout
    • MDC: window.clearTimeout

    Also, you may wish to read this article on timers by John Resig,

    • ejohn.org : How Javascript Timers work
    0 讨论(0)
  • 2020-12-03 06:29

    You can use setInterval() for that. Create an anonymous function to be called, and use the time in milliseconds:

    var myInterval = window.setInterval(function() { ajaxUpdate(10); }, 1000);
    
    0 讨论(0)
  • 2020-12-03 06:37

    You can use the function setTimeout(String fonc, Integer delay). For example, to execute your code each second you can do :

    window.setTimout("ajaxUpate",100);
    

    Hope i answer to your question ;)

    0 讨论(0)
  • 2020-12-03 06:50

    You can use too jQuery Timers: http://plugins.jquery.com/project/timers

    0 讨论(0)
  • 2020-12-03 06:51

    You can also do it with

    setTimeout(function() {ajaxUpdate(10)}, 1000);
    
    0 讨论(0)
提交回复
热议问题