2011-08-05 5 views
3

그래서 저는 jQuery 라이브러리와 PHP를 사용하여 Long-Polling을 시도했습니다. 나는이 일을하고 있기 때문에 장래에 일종의 실시간 알림 시스템을 만들 수 있습니다. 지금 가지고있는 코드는 실제로 작동하지 않습니다.jQuery와 PHP를 사용한 Long Polling

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를 반환하더라도 새로운 요청을 보냅니다. im은 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

제 문제는 너무 많은 아약스 요청을 전송하고 있다는 것입니다. – Joshwaa

관련 문제