programing

jQuery - 10초마다 Ajax 호출

elecom 2023. 3. 29. 21:14
반응형

jQuery - 10초마다 Ajax 호출

다음과 같이 mysql 피드백 데이터베이스를 구축했습니다.

name | 장소 | 피드백

Ryan | 영국 | 큰 지원

분명히 그것보다 더 많은 엔트리가 있습니다.10초마다 새로운 피드백 아이템을 Ajax를 통해 표시하는 피드백 div를 작성하려고 합니다.

그래서 이렇게 구성했습니다.

$(document).ready(function(){
   new get_fb(); 
 });

function get_fb(){
var feedback = $.ajax({//Ajax
                        type: "POST",
                        url: "feedback.php",
                        async: false
                        }).responseText;//end of ajax

$('div.feedback-box').html(feedback).delay(10000).queue(function() {
    new get_fb(); 
    });
}

여기 제 PHP 파일이 있습니다.

$result = mysql_query("SELECT * FROM feedback ORDER BY RAND() LIMIT 0,1");
while($row = mysql_fetch_array($result))
{
    $name = $row['name'];
    $location = $row['location'];
    $feedback = $row['feedback'];

    echo "
    <p>Name: $name, Location: $location, Feedback: $feedback.</p>
    ";
} 

단, 2개밖에 표시되지 않습니다.계속 새로운 것을 보여주는 것이 아니라, 첫 번째 것을 보여주고 두 번째를 보여주다가 멈춥니다.

내가 뭘 잘못하고 있지?감사합니다:)

너 지금 뭐 할 거야?setInterval()?

setInterval(function(){get_fb();}, 10000);

또는 다음 중 하나를 선택합니다.

setInterval(get_fb, 10000);

또는 콜을 정상적으로 완료한 후에만 실행할 경우 에서 설정할 수 있습니다..ajax().success()콜백:

function get_fb(){
    var feedback = $.ajax({
        type: "POST",
        url: "feedback.php",
        async: false
    }).success(function(){
        setTimeout(function(){get_fb();}, 10000);
    }).responseText;

    $('div.feedback-box').html(feedback);
}

또는 사용.ajax().complete()결과에 관계없이 실행할 경우:

function get_fb(){
    var feedback = $.ajax({
        type: "POST",
        url: "feedback.php",
        async: false
    }).complete(function(){
        setTimeout(function(){get_fb();}, 10000);
    }).responseText;

    $('div.feedback-box').html(feedback);
}

여기 두 가지에 대한 시연입니다.jsfiddle이 Ajax 콜에서 404 오류를 반환하고 있기 때문에 성공하는 것은 1회뿐입니다.

http://jsfiddle.net/YXMPn/

setInterval(function()
{ 
    $.ajax({
      type:"post",
      url:"myurl.html",
      datatype:"html",
      success:function(data)
      {
          //do something with response data
      }
    });
}, 10000);//time in milliseconds 

대신 setInterval()을 사용해 볼 수 있습니다.

var i = setInterval(function(){
   //Call ajax here
},10000)

이건 내게 효과가 있었다.

setInterval(ajax_query, 10000);

function ajax_query(){
   //Call ajax here
}

언급URL : https://stackoverflow.com/questions/5687600/jquery-call-ajax-every-10-seconds

반응형