暂停一次一个地跟踪从PHP数组返回的链接
我有一个json_编码的链接数组,我从一个php文件返回,我想做的是打开一个新窗口,让它一次一个地更改每个链接的url,并在移动到下一个项目之前暂停大约15秒 如果我在PHP文件中使用暂停一次一个地跟踪从PHP数组返回的链接,php,javascript,Php,Javascript,我有一个json_编码的链接数组,我从一个php文件返回,我想做的是打开一个新窗口,让它一次一个地更改每个链接的url,并在移动到下一个项目之前暂停大约15秒 如果我在PHP文件中使用sleep(15),它似乎会暂停整个过程,然后立即将结果踢出 在for循环中使用setTimeout(function(){})似乎也没有帮助 肯定会有办法的,我想我只是不够熟悉 有什么建议吗 提前谢谢 如果我没弄错的话…你是说 $.post('../php/myPHP.php',{ input: input1,
sleep(15)
,它似乎会暂停整个过程,然后立即将结果踢出
在for
循环中使用setTimeout(function(){})
似乎也没有帮助
肯定会有办法的,我想我只是不够熟悉
有什么建议吗
提前谢谢
如果我没弄错的话…你是说
$.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++) { ... }
for(var i=0,len=results.length;i
对吧?
--新编辑
我已经打开了窗口,但它只是跳转到结果中的最后一个链接
$.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!');
});
$.post('../php/myPHP.php',{input:input,values:values})
.完成(功能(r){
var results=$.parseJSON(r);
函数windowOpener(url、名称){
if(typeof(popupWin)!=“对象”){
popupWin=window.open(url、名称);
}否则{
如果(!popupWin.closed){
popupWin.location.href=url;
}
}
}
$('#content').html('');
对于(变量i=0,len=results.length;i
所以我还是会遗漏一些东西……有人吗?不要使用循环,只需使用settimeout并从数组中弹出一个项即可
var items = your-array-from-php;
var display = function() {
if(items.length > 0) {
show_url_in_a_new_window(items.pop());
setTimeout(display, 15 * 1000);
}
};
display();
您不能在服务器上使用睡眠,这只会延迟发送到客户端的任何输出。相反,您应该每次重复调用服务器以获取一个新的URL,或者一次返回一个完整的URL列表并使用
setTimeout
打开它。您可以使用window.open
方法操作具有任意URL的新窗口
此外,发布代码可能对您更有帮助。您能发布您目前拥有的代码吗?在我的编辑中,我是正确地遵循了您的建议,还是完全偏离了基础?是的,看起来不错,如果您使用chrome,使用调试控制台(F12)也很有帮助。如果我提供了帮助,也许您可以将此标记为正确答案。