是否可以在Javascript中每10分钟重复一次循环?

时间:2017-01-07 16:43:22

标签: javascript

我想让这个循环(一首歌)被执行,然后等待10分钟,然后再重复一遍。

for (i = 0; i < 3; i++) { 

var audio =    document.createElement("");

audio.src = "my_sound.mp3";
audio.play();

};

如果有人可以帮助我,那就太棒了。

5 个答案:

答案 0 :(得分:1)

很容易就可以这样做:

.append()

setInterval

答案 1 :(得分:1)

尝试使用:

setInterval(function() {
    for (i = 0; i < 3; i++) { 

      var audio = document.createElement("audio");

      audio.src = "my_sound.mp3";
      audio.play();
    } 
}, 600 * 1000);

答案 2 :(得分:0)

您可以使用 setTimeout() setInterval() ,但您不能指望它正好是10分钟,因为该功能将排在事件循环,只有在达到超时时间并且JavaScript运行时空闲后才会触发。

function play () { for (i = 0; i < 3; i++) { var audio = document.createElement("audio"); audio.src = "my_sound.mp3"; audio.play(); }; } setInterval(play, 600000); //the function name. do not put () after it as you aren't executing it. //600000 is the number of milliseconds in 10 minutes. play(); //this will execute it immediately the first time if you want. 将回调函数作为其第一个参数,并将一个数字(以毫秒为单位)作为其第二个参数。在调用超时函数之前,将数字视为“等待的最短时间”。

setTimeout()

或者function go(){ // Clear the previous timer timer = null; for (i = 0; i < 3; i++) { var audio = document.createElement("audio"); audio.src = "my_sound.mp3"; audio.play(); } // Re-run the timer timer = setTimeout(go, 600000); } var timer = setTimeout(go, 600000);

setInterval()

答案 3 :(得分:0)

您正在寻找使用setInterval()或setTimeout

http://www.w3schools.com/jsref/met_win_setinterval.asp

第一个,每X次执行一次,第二个执行X时间过后,要使用的一个取决于你的循环有多大,或者你想在某个时候退出它,因为你可以在之前的setTimeout中进行评估执行或使用另一个的clearInterval()。

答案 4 :(得分:0)

创建一个在超时后调用自身并调用一次的函数

function createAudioElement() {
    for (i = 0; i < 3; i++) { 

        var audio = document.createElement("audio");  
        audio.src = "my_sound.mp3";
        audio.play();
  };

  setTimeout(createAudioElement, 600000);
}

createAudioElement();

确保在document.createElement()中指定要创建的元素 - 在本例中为audio,否则会引发错误。