相关疑难解决方法(0)

setTimeout还是setInterval?

据我所知,这两个javascript的行为方式相同:

选项A:

function myTimeoutFunction()
{
    doStuff();
    setTimeout(myTimeoutFunction, 1000);
}

myTimeoutFunction();
Run Code Online (Sandbox Code Playgroud)

选项B:

function myTimeoutFunction()
{
    doStuff();
}

myTimeoutFunction();
setInterval(myTimeoutFunction, 1000);
Run Code Online (Sandbox Code Playgroud)

使用setTimeoutsetInterval有什么区别吗?

javascript setinterval

738
推荐指数
12
解决办法
37万
查看次数

每60秒调用一次函数

使用setTimeout()它可以在指定的时间启动一个功能:

setTimeout(function, 60000);
Run Code Online (Sandbox Code Playgroud)

但是,如果我想多次启动该功能怎么办?每次时间间隔过去,我都想执行该功能(每60秒,让我们说).

javascript function timer setinterval

227
推荐指数
8
解决办法
39万
查看次数

Javascript - 告诉setInterval只能触发x次?

是否可以限制setInterval在javascript中触发的次数?

javascript

59
推荐指数
3
解决办法
4万
查看次数

setTimeOut()或setInterval().4种方法同样适用.哪个最好?

我正在显示一个关于给定的终结时间的倒计时表.

虽然它的工作完美,但我想知道哪种方法最适用.

下面是我的倒计时功能.

  var timerId;
  var postData = {endDate : endDate, tz : tz};  
  var countdown = function()
    { 
      $.ajax({
               type : 'post',
               async : false,
               timeout : 1000,
               url : './ajax_countdown.php',
               data : $.param(postData),
               dataType : 'json',
               success : function (resp){
                  $('#currentTime').html(resp.remainingTime);
               }
            }); 
     }
Run Code Online (Sandbox Code Playgroud)

我想要的是每1秒后自动调用一个函数(倒计时),如果它在1秒内没有执行/完成,则取消当前的ajax并启动一个新的ajax调用.

现在我发现有4种工作方法

方法1:将setInterval()与window对象一起使用

window.setInterval(countdown, 1000);
Run Code Online (Sandbox Code Playgroud)

方法2:独立使用setInterval()

setInterval(function() {countdown()}, 1000);
Run Code Online (Sandbox Code Playgroud)

方法3:在函数内部使用setTimeOut调用其他函数初始化main函数

var countdown = function() { 
     $.ajax({ //ajax code });
     timerId = setTimeout(countdown, 5000); // …
Run Code Online (Sandbox Code Playgroud)

javascript jquery anonymous-function settimeout setinterval

5
推荐指数
2
解决办法
3230
查看次数

函数调用之间的javascript延迟数组中的每个索引

目标:

  • 对数组中的每个元素执行逻辑.
  • 等待X下一次执行之间的ms.
  • mouseover(#slider)暂停延迟 - 如果延迟= 1000毫秒,并且已经过了300毫秒,mouseout(#slider)将触发恢复倒计时剩余的700毫秒延迟.
  • 在最后一个元素上执行后,循环返回再次执行 - 永远.

这是一个直观的解释:

var = s Array(1,2,3)

var x = s[1];   //get first element   
console.log(x); //do something to it
wait();         //START wait timer 1000ms

//------------> timer : 300ms
//------------> user  : mouseover (#slider) : pause timer
//------------> user  : waited 5000ms
//------------> user  : mouseout  (#slider) : resume timer
//------------> timer : 300ms --> still 700ms to go!
//------------> timer : 500ms
//------------> user  : mouseover (#slider) …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

1
推荐指数
2
解决办法
3636
查看次数