Ajax请求PHP循环编号

时间:2014-11-26 20:55:11

标签: php jquery ajax

我目前正在尝试获取PHP循环状态并更新HTML5进度条。 按钮单击触发循环,每次执行后设置为5000,睡眠时间为1秒。我当然也做了一个Ajax请求,每秒重新获得当前的循环数并更新进度条。但是请求总是等到循环完成并向我显示一个类似" 1234567891011 ......"

这是我的JQuery代码,它非常简单,因为它仅用于测试和学习目的

function getStatus() {

    $.ajax({
        url : 'ajax.php',
        dataType: "html",
        type: "POST",
        data: {request: 'request',},

        success: function( data ) {

            //Call function to update status on the loading bar
            updateBar(data);

        }
    });

    //Update loading bar
    function updateBar(data) {

        $('progress').attr('value', data);
    }
}


function setGo() {

    $.ajax({
        url : 'ajax.php',
        dataType: "html",
        type: "POST",
        //async: false,
        data: {status: 'GO',},

        success: function( data ) {}
    });

}


$('#start').click(function(event) { 

    setGo();

    setInterval(function() {

        getStatus();

    }, 1000);

});

这是我的PHP代码

<?php

//Overwrite php execution limit
set_time_limit(120);

if($_POST['status'] = 'GO') {

    $number = 5000;
    $counter = 0;

    for($i=0; $i != $number; $i++) {

        $counter++;

        sleep(1);

        if(isset($_POST['request'])) {

            echo $counter;
        }
    }
}
?>

我尝试了很多不同的方法并阅读了很多帖子,但不知怎的,对我来说没什么用。 希望有人有个主意。

2 个答案:

答案 0 :(得分:-1)

好好看看你的&#34; echo $ counter;&#34;在你的PHP脚本中,这是一个(5000次)循环。

答案 1 :(得分:-1)

  

在解释并执行PHP代码之后,Web服务器将结果输出发送到其客户端,通常以生成的网页的一部分的形式发送 - 例如,PHP代码可以生成网页的HTML代码

来自PHP的维基页面

这基本上意味着整个php文件将始终在返回输出之前执行。在返回输出之前,循环将执行5000次。