1

我有这个表格:

<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 但我不知道该怎么做。

请问有什么想法吗?

4

2 回答 2

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++;
}
?>
于 2013-10-14T09:40:39.343 回答
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++;
}
?>
于 2013-10-14T11:40:58.263 回答