2011-08-05 26 views
3

したがって、jQueryライブラリとPHPを使用してロングポーリングを実行しようとしています。私はこれをやっているので、将来私は何らかのリアルタイム通知システムを作ることができます。私が今行っているコードは実際には機能していません。jQueryとPHPを使用したロングポーリング

のindex.php

<html> 
<head> 
    <title>Long Polling</title> 
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.6.2.min.js'></script> 
    <script type='text/javascript'> 
     $(document).ready(function() { 
      getData(); 
     }); 

     function getData() { 
      $.ajax({ 
       type: "POST", 
       url: "ajax.php", 
       async: true, 
       timeout: 50000, 
       data: "get=true", 
       success: function(data) { 
        $("#info").append(data); 

        setTimeout("getData()", 1000); 
       } 
      }); 
     } 
    </script> 
</head> 
<body> 
    <div id='info'></div> 
</body> 
</html> 

Ajax.php

<?php 
    if(rand(1, 100) % 2) { 
     echo 'even'; 
    } else { 
     sleep(rand(1, 4)); 
    } 
?> 
+0

何が「うまくいきませんか? – genesis

+0

リクエストが送信されていますが、ifがfalseを返しても新しいリクエストを送信しています。これはif文がtrueを返す場合にのみデータを受信するようにしようとしているからです。 – Joshwaa

+0

それは働いていないとはどういう意味ですか? – ace

答えて

0

はajax.php

<?php 
    if(rand(1, 100) % 2) { 
     echo 'even<br />'; 
    } else { 
     sleep(rand(8, 12)); 
    } 
?> 

watch this、時にはあなたは12秒まで待つ必要がためにこれを使用してみてください

あなたは彼が1秒で完了するようにすれば、それは壊れているように見えますが、それはありません

+0

これはちょうど長い睡眠の私のコードとまったく同じですか?それは何ですか? – Joshwaa

+0

@Joshwaa:あなたの問題は、あなたが多くの時間を受け取ったので、あなたのケースでは「壊れている」ように見えるということです。または何が「壊れている」、何が機能していないのですか? – genesis

+0

私の問題は、あまりにも多くのAjaxリクエストを送信していることです。 – Joshwaa

関連する問題