2016-04-26 99 views
0

我的程序在操作每個迭代的一部分url(增加url中的日期值)後打開2-7個網頁。我希望程序在打開下一個網址之前暫停。例如:打開URL 1 - >等待1.5秒 - >打開URL 2 ...等如何在JavaScript中暫停執行?

我的JavaScript函數看起來是這樣的:

function submitClicked(){ 
save current date in URL as variable 
loop(4 times){ 
window.open(urlString); //open the initial URL 
var newDate = getNextDay(date); 
urlString.replace(date, newDate); (ex: if 2016-12-31 then replace it in URL with with 2017-01-01) 
**wait 1.5 seconds** 
} 

function getNextDay(date){ 
... 
return result (String value) 
} 

所以基本上,我希望它暫停在1.5秒循環的每次迭代結束。我在Java中製作了相同的程序,只是簡單地使用了Thread.sleep(1500);

+0

可能的重複[如果我想要JavaScript版本的sleep()?](http://support.microsoft.com/kb/951021/what-do-i-do-if-i -want-A-JavaScript的版本的睡眠) –

回答

2

您不應該試圖阻止JavaScript中的線程執行,因爲這會導致瀏覽器感到困惑,並且通常會爲用戶提供非常糟糕的體驗。你可以使用setInterval來重構以防止這種情況。

arr = ['http://site1', 'http://site2', 'http://site3']; 
timer = null; 

function instantiateTimer(){ 
    timer = setInterval(openPage, 1000); // 1 second 
} 

function openPage(){ 
    if(arr.length > 0){ 
    page = arr.pop(); 
    window.open(page) // some browsers may block this as a pop-up! 
    }else{ 
    clearInterval(timer); 
    } 
}