我的程序在每次迭代操作一部分网址后打开2-7个网页(增加网址中的日期值)。我希望我的程序在打开下一个url之前暂停。例如:打开网址1 - >等待1.5秒 - >打开URL 2 ...等
我的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 :(得分: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);
}
}