2012-04-26 2 views
2

Я много читал о программировании комет, но думаю, если бы эта реализация была возможна.PHP-буферизация PHP Loop и JQuery Ajax

это мой JScript

$.ajax({ 
    url:"mypage.php", 
    onProgress:{function(rsp){ //i know there is no such function like this 
    $("#mydiv").append(rsp+"<br>"); 
    }} 
}); 

и это мой mypage.php

<?php 
    while(true){ 
    ob_start(); 
     echo time(); 
    ob_flush(); 
    } 
    ?> 

что теперь я хочу мой запрос Ajax бы получить результаты во время прогресса. Это возможно?

+0

ответ Петах по адресу http://stackoverflow.com/questions/7740646/jquery-ajax-read-the-stream-incrementally Данное решение работает лакомство для меня –

ответ

1

Heres избирательный способ TODO это, если ваш только ищет, чтобы захватить время. почему существует бесконечный цикл с использованием ресурсов.

<?php 
//polling.php 
if(isset($_GET['poll']) && $_GET['poll']=='1'){ 
$out = array('thetime'=>date("F j, Y, g:i:s a")); 
echo json_encode($out); 
die; 
} 
?> 


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
function poll(){ 
    setTimeout(function(){ 

     $.ajax({ url: "http://localhost/polling.php?poll=1",cache: false, 
     success: function(data){ 
     //Do something with returned json 
     $("#time").replaceWith("<p id=\"time\">The Server Time & Date is: "+ data.thetime +"</p>"); 
     //Next poll 
     poll(); 
     }, dataType: "json"}); 
    // 1/2 a sec 
    }, 500); 
} 

$(document).ready(function(){ 
    poll(); 
}); 
</script> 

<p id="time">The Server Time & Date is: <?php echo date("F j, Y, g:i:s a");?></p>