2016-04-26 13 views
0

Mein Programm öffnet 2-7 Webseiten, nachdem ein Teil der URL für jede Iteration bearbeitet wurde (erhöht den Datumswert in der URL). Ich möchte, dass mein Programm pausiert, bevor es die nächste URL öffnet. Ex: öffnen URL 1 -> 1.5 Sekunden warten -> URL öffnen 2 ... etcWie pausiert man die Ausführung in Javascript?

Mein JavaScript-Funktion etwa wie folgt aussieht:

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) 
} 

Also im Grunde, ich will es 1,5 Sekunden bei der pausieren Ende jeder Iteration der Schleife. Ich habe das gleiche Programm in Java gemacht und einfach Thread.sleep(1500);

+0

Mögliches Duplikat [Was kann ich tun, wenn ich eine JavaScript-Version des Schlafes will()?] (Http://stackoverflow.com/questions/951021/what-do-i-do-if-i -want-a-javascript-Version-of-sleep) –

Antwort

2

Sie sollten nie versuchen, eine Thread-Ausführung in JavaScript zu blockieren, da dies dazu führen wird, dass der Browser stottern und bieten in der Regel eine sehr schlechte Erfahrung für Ihre Benutzer. Sie können dies mithilfe von setInterval refaktorieren.

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); 
    } 
} 
Verwandte Themen