JavaScript SetInterval()队列

时间:2016-06-24 12:02:40

标签: javascript jquery setinterval

是否可以在特定时间调用 foreach (String W in words) { ... } 函数,但只执行一次函数。

SetInterval()

我希望在指定时间内只调用一次结果:

function get_feed(social) {
  $.ajax({})
}

setInterval(function(){
  get_feed('facebook');
},5000);

setInterval(function(){
  get_feed('twitter');
},10000);

但目前它在10000ms上调用两个函数;

3 个答案:

答案 0 :(得分:5)

如果我正确地读你,你想每五秒获得一次,并在facebook和twitter之间交替。如果是这样,请使用单个函数:

var feed = "facebook";
setInterval(function() {
    get_feed(feed);
    feed = feed === "facebook" ? "twitter" : "facebook";
}, 5000);
  

目前它在10000ms上调用两个函数;

这是因为您的原始代码计划get_feed('facebook')每5000毫秒运行一次,get_feed('twitter')每10000毫秒运行一次。所以在5000ms之后,它会在facebook上运行一次,然后在另外5000ms(总共10000ms)之后,它会同时执行这两个操作,然后再返回5000ms,然后是5000ms(总共20000ms),这两个都是...

答案 1 :(得分:0)

使用setTimeout

function get_feed(social) {
  $.ajax({})
}

setTimeout(function(){
  get_feed('facebook');
},5000);

setTimeout(function(){
  get_feed('twitter');
},10000);

答案 2 :(得分:0)

尝试

function get_feed(social) {
  $.ajax({})
}

var a = setInterval(function(){
  get_feed('facebook');
},5000);

var b = setInterval(function(){
  get_feed('twitter');
},10000);

示例:

var p = document.getElementById("text");

var a = setInterval(function(){
    p.innerText = "facebook";
  }, 5000);

var a = setInterval(function(){
    p.innerText = "twitter";
  }, 10000);
<p id="text"></p>