Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 逐一显示每个结果_Javascript_Php_Ajax_While Loop - Fatal编程技术网

Javascript 逐一显示每个结果

Javascript 逐一显示每个结果,javascript,php,ajax,while-loop,Javascript,Php,Ajax,While Loop,我有一个代码,它在循环中增加URL参数,直到$I等于10。发生这种情况时,它将显示每个数字,最多10个(当$i停止增加时)-在这种情况下,它将是1、2、3、4、5、6、7、8、9 问题是,只有当$i等于10时,它才会显示1、2、3、4、5、6、7、8、9-我需要它在发生时显示数字(而不是等待$i等于10!) 在脚本结束之前,没有稳定的方法让PHP脚本生成输出 如果需要倒计时,可以将while循环放入Javascript中,让它调用PHP脚本,如下所示: test2.php?i=1 然后 等等。

我有一个代码,它在
循环中增加URL参数,直到
$I
等于10。发生这种情况时,它将显示每个数字,最多10个(当
$i
停止增加时)-在这种情况下,它将是1、2、3、4、5、6、7、8、9

问题是,只有当
$i
等于10时,它才会显示1、2、3、4、5、6、7、8、9-我需要它在发生时显示数字(而不是等待
$i
等于10!)


在脚本结束之前,没有稳定的方法让PHP脚本生成输出

如果需要倒计时,可以将while循环放入Javascript中,让它调用PHP脚本,如下所示:

test2.php?i=1
然后


等等。

您也可以使用
.queue()
.append()

php


我真的认为
async
会对您有所帮助。你能试试这个密码吗

<script>
$(document).ready(function(){
        $.ajax({
            type: "POST",
            url: "test2.php",
            async: false,
            success: function(data) { $("#here").html(data);  }
        });
});
</script>

$(文档).ready(函数(){
$.ajax({
类型:“POST”,
url:“test2.php”,
async:false,
成功:函数(数据){$(“#这里”).html(数据);}
});
});

在浏览器中运行脚本需要多长时间?@Akshay实际上只需要几秒钟。然而,这是一个例子-我可以将
$I
增加到10000,这确实需要一段时间。我还压缩了代码。如果间隔相同,只需使用$interval或$timeout。如果代码完全用JS?或Node.JS编写,是否可以这样做?这不是PHP的限制,而是web服务器用来与PHP通信的API。PHP本身将在代码中点击print语句后立即生成输出。通常情况下,这样做是有充分理由的,您不希望将不完整的HTML标记发送到浏览器。@bobjomes是的,请参阅我的修订答案。@bobjomes JSFIDLE,chaining
.promise()。then()
要在队列中的所有函数都完成时调用函数,我如何增加请求数?@bobjomes“我将如何增加请求数?”您可以将项目添加到
arr
arrayNo我的意思是,当它变为1、2、3、4、5时,我希望如何同时运行两个项目以加快速度up@bobjomes这是一个稍微不同的问题,尽管可能。将不得不调整
$.ajax()
调用一次执行两个,但由于每个调用请求不同的文件,因此无法确定进程是否会更快。注意,最初的问题是“逐个显示每个结果”,而不是一次两个time@bobjomes没问题。只要告诉我这对你有没有帮助就行了。
test2.php?i=1
test2.php?i=2
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

$({}).queue("ajax", $.map(arr, function(item, i) {
  return function(next) {
    return $.ajax({
              type: "POST",
              url: "test2.php",
              data: {n:item}
           })
           .then(function(data) { 
             $("#here").append(data);  
             next();
           });

  }
})).dequeue("ajax")
if (isset($_POST["n"])) {
  $content = file_get_contents("https://www.example.com?id=" . $_POST["n"]);
  echo $content
}
<script>
$(document).ready(function(){
        $.ajax({
            type: "POST",
            url: "test2.php",
            async: false,
            success: function(data) { $("#here").html(data);  }
        });
});
</script>