逐个打印循环的itreation,而不是使用php和ajax一次性打印

逐个打印循环的itreation,而不是使用php和ajax一次性打印,php,ajax,counter,Php,Ajax,Counter,我试图一个接一个地打印循环迭代,而不是使用ajax打印循环迭代,这可能吗? 喜欢 迭代1 迭代2 等,但它们不应该立即,而是一个接一个的循环工作 这是我的ajax和php代码。此时,我将完成整个代码过程,并最终给出输出,而不是逐个输出 <div id="div1"></div> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script> jQ

我试图一个接一个地打印循环迭代,而不是使用ajax打印循环迭代,这可能吗? 喜欢 迭代1 迭代2

等,但它们不应该立即,而是一个接一个的循环工作

这是我的ajax和php代码。此时,我将完成整个代码过程,并最终给出输出,而不是逐个输出

<div id="div1"></div>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>

jQuery(document).ready(function($) {

$("button").click(function(){

  $.ajax({url:"counter.php",success:function(result){
    $("#div1").html(result);
  }});
});


});
</script>
<button name="button" value="button" style="width:200px; height:200px;">

jQuery(文档).ready(函数($){
$(“按钮”)。单击(函数(){
$.ajax({url:counter.php],success:function(result){
$(“#div1”).html(结果);
}});
});
});
下面是PHP代码

<?php

     for ($i = 0; $i < 10; $i++)
     {
       echo "<div>" . time() . ": Iteration $i</div>";
       sleep(1);

       flush();
     } 

    ?>

这是因为一旦发布了请求循环,就会得到响应并将响应还原为ajax方法 循环执行得如此之快,一旦它执行得如此之快,你就需要让它休眠,这样,当你在几秒钟后得到一个结果时,你就可以再次执行循环并得到一个响应

请按照此超时函数睡眠循环一段时间

在我所属的位置,你在整个循环中传递的参数没有丢失动态值

> (function(i){
>         setTimeout(function(){
> 
> }, 1000 * i);
>     }(i));
没错。如果执行完整的PHP脚本,PHP将(默认情况下)发送输出。如果您想要一个计数器,那么应该循环使用AJAX调用,而不是PHP代码。此示例将起作用:

    var currentCounter = 0;
    var countTill = 10;

    function invokeCounter()
    {
        $.ajax({url:"counter.php?counter="+currentCounter,success:function(result)
        {
            $("#div1").html(result);

            if(currentCounter >= countTill)
            {
                clearInterval(myCounter);
            }

            currentCounter++;

        }});
    }

    var myCounter = setInterval(function()
    {
        invokeCounter();
    }, 1000);
在PHP中,您可以获得当前计数器

<?php
    echo "<div>" . time() . ": Iteration ".$_GET['counter']."</div>";
?>


我想您知道这对于webcounter来说不是一个正确的解决方案,但是您可能正在JQuery/AJAX/PHP中进行实验/测试。

注意,
div1
中的文本将在每次迭代中被覆盖。如果要显示每一行,可以使用类似于
$(“#div1”).prepend(result)的内容
而不是
$(“#div1”).html(结果)不,实际上我需要php循环中的计数器。我有一个php函数,可以从文件表单文件夹中读取图像并在循环中进行处理,但在每次迭代中我都想打印它们,但我的代码不可能打印。我在一些wp插件中看到这种功能,它可以逐个打印进程。你对循环的目标是什么?你想显示上传图像的进度条吗?不,我想显示该文件已在循环中处理。在循环中,我正在从文件夹中读取一些图像并进行处理。你应该读取javascript中的文件夹,并将每个文件名发送到你的PHP脚本,在那里可以对其进行处理。然后您可以回显每个处理过的文件。