2

我正在阅读很多关于彗星编程的东西,但我在想这种实现是否可行。

这是我的脚本

$.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 请求会在进程中获取结果。这可能吗?

4

2 回答 2

1

要发生这种情况,您必须使用彗星技术....请参考

显示 Ajax 调用进度的最佳方式是什么?

于 2012-04-26T06:25:27.377 回答
1

如果您只想抓紧时间,这就是轮询方式。为什么要使用资源进行无限循环。

<?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>
于 2012-04-26T06:44:34.923 回答