形成ajax和ob_flush

时间:2013-10-14 09:28:37

标签: javascript php jquery ajax

我有这样的表格:

<form id="monForm" action="indexer.php" method="post">
<input name="url" id="url" value="" class="url"/>
<input type="submit" id="envoyer" value="Parser" class="submit" />
</form>
<p id="infos"></p>

这个Javascript:

   <script>
   $(document).ready(function(){
       $('#monForm').submit(function() {

        var url = $('#url').val();
        $( "#result" ).empty();

        // appel Ajax
        $.ajax({
            url: $(this).attr('action'), // le nom du fichier indiqué dans le formulaire
            type: $(this).attr('method'), // la méthode indiquée dans le formulaire (get ou post)
            data: $(this).serialize(), // je sérialise les données (voir plus loin), ici les $_POST
            success: function(msg) { // je récupère la réponse du fichier PHP
                $('#infos').append(msg+'%<br/>');

            }
        });
        return false; // j'empêche le navigateur de soumettre lui-même le formulaire
    });
});                

我的indexer.php只是一段时间了:

$i = 0;
while($i < 10){
   echo $i."<br/>";
   sleep(1);
   $i++;
}

我不想一次性返回数据(0,1,2,3 ......)。

我认为我需要使用ob_flush,但我不知道该怎么做。

请问好吗?

2 个答案:

答案 0 :(得分:0)

如果您在打印数字之前尝试引入延迟,我认为此代码可能会有所帮助。

<?php 
header( 'Content-type: text/html; charset=utf-8' );

$i = 0;            
while($i < 10){
    echo $i."<br/>";
    if(sleep(1) != 0) {
        echo 'sleep failed';
        break;
    }
    flush();
    ob_flush();
    $i++;
}
?>

答案 1 :(得分:0)

希望这会对你有所帮助:

<?php
// start output buffer
if (ob_get_level() == 0) ob_start();
$i = 0;
while($i < 10){
    echo $i."<br/>";
    ob_flush();
    flush();
    sleep(1);
    $i++;
}
?>