2017-01-15 1 views
0

내 코드에 문제가 있습니다. AJAX 호출은 JSON 배열에서 페이지를 입력하는 동안 및 새로 고침 후 정보를 가져 와서 HTML 코드에 원하는대로 넣습니다.하지만 문제는 설정 루프 (30 초)에서 수행하지 않습니다.정기 AJAX 통화가 서버 상태를 업데이트하지 않습니다.

자바 스크립트 :

$(function status_ts3(){ 
    $.ajax({ 
      url : '/lib/ts3_stats.php', 
      type : 'POST', 
      dataType : 'json', 
      success : function (response) { 
       $('#ts3-status').replaceWith(response['server_status']); 
       $('#ts3-number-online').replaceWith(response['online_number']); 
      }, 
      error : function() { 
       $('#ts3-status').replaceWith('<span class="server-offline">Offline</span>'); 
       $('#ts3-number-online').replaceWith('<span class="online-number-ts3">0/0</span>'); 
      }, 
      complete: function() { 
       setTimeout(status_ts3, 30000); 
      } 
    })}); 

PHP :

$ts3 = TeamSpeak3::factory("serverquery://@xxx/?server_port=xxx"); 
$status = $ts3->getProperty("virtualserver_status"); 
$count = $ts3->getProperty("virtualserver_clientsonline") - $ts3->getProperty("virtualserver_queryclientsonline"); 
$max = $ts3->getProperty("virtualserver_maxclients"); 
$servers_ts3='<span class="server-online">' . ucfirst($status) .'</span>'; 
$online_number_ts3 = '<span class="online-number-ts3">' . $count . '/' . $max . '</span>'; 
$ajax = array(
    'server_status' => $servers_ts3, 
    'online_number' => $online_number_ts3, 
); 
echo json_encode($ajax); 

그래서 질문은, 왜 작동하지 않습니다 여기 내 코드는? 내가 뭔가를 놓치거나 오해 했습니까? 나는 반 뉴비 다. 그래서 나는 정말로 모르고있다, 모든 도움에 감사 할 것이다.

+0

개발자 콘솔의 모든 항목은 무엇입니까? –

+0

음, 콘솔에 오류가 없습니다. – szuszi

답변

0

정확하게 이해한다면 (나는 제목에서 "Periodic"이라는 단어를 발견했습니다)이 AJAX 호출을 30 초마다 호출하려고합니다. 지정된 밀리 세컨드를 기다린 후

에서는 setTimeout (기능, 밀리 초) 이 함수를 실행 : 그래서 당신은 setInterval보다는 setTimeout를 사용해야하는 경우.

setInterval (function, milliseconds) setTimeout()과 동일하지만 함수의 실행을 계속 반복합니다.

http://www.w3schools.com/js/js_timing.asp

이 먼저 설치 폴링하고이 같은 AJAX를 호출 할 함수를 정의해야하는 경우라면 :

setInterval(status_ts3, 30000); 

$(function status_ts3(){ 
    $.ajax({ 
    ... 
    }) 
}); 

그리고 complete 콜백 형식 AJAX 처리 기능을 제거는.

관련 문제