我有一个从 php 文件返回的 json_encoded 链接数组,我想要做的是打开一个新窗口,让它一次将每个链接的 url 更改为一个并暂停大约 15 秒在移动到下一个项目之前。
如果我sleep(15)
在 PHP 文件中使用,它似乎会暂停整个过程,然后立即将结果全部踢出。
在循环中使用时usingsetTimeout(function () {})
似乎也无济于事。for
会有办法做到这一点,我猜我还不够熟悉。
有什么建议吗?
提前致谢!
所以如果我正确地遵循......你建议像
$.post('../php/myPHP.php',{ input: input1, value: value } )
.done(function(r) {
var results = $.parseJSON(r);
var display = function() {
if(results.length > 0) {
show_url_in_a_new_window(results.link.pop());
setTimeout(display, 15 * 1000);
}
};
display();
})
.fail(function() {
console.log('Epic Fail!');
});
而不是尝试
for (var i = 0, len = results.length; i < len; i++) { ... }
正确的?
--New Edits 我已经打开了窗口,但它只是跳转到结果中的最后一个链接?!
$.post('../php/myPHP.php',{ input: input, values: Values } )
.done(function(r) {
var results = $.parseJSON(r);
function windowOpener(url, name) {
if (typeof(popupWin) !== "object"){
popupWin = window.open(url, name);
} else {
if (!popupWin.closed){
popupWin.location.href = url;
}
}
}
$('#content').html('');
for (var i = 0, len = results.length; i < len; i++) {
console.log(results[i].link);
setTimeout( windowOpener(results[i].link, 'Window'), 5000); //Still only goes to the last link
}
})
.fail(function() {
console.log('Epic Fail!');
});
所以我仍然必须遗漏一些东西......有人吗?