2016-04-26 17 views
0

私のプログラムは、反復ごとにurlの一部を操作した後、2〜7個のWebページを開きます(URLの日付値をインクリメントします)。プログラムが次のURLを開く前に一時停止したい。例: - - > 1.5秒を待つURL 1を開きます>開く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

[sleep()のJavaScriptバージョンが必要な場合はどうすればよいですか?](http://stackoverflow.com/questions/951021/what-do-i-do-if-i) -want-a-javascript-version-of-sleep) –

答えて

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); 
    } 
} 
関連する問題