2013-02-11 5 views
0

자바에서 웹에서 검색하는 것조차도 해결할 수없는 간단한 것. 나는 옳은 것을 찾았지만 올바른 장소에 놓을 수는 없었다고 생각합니다.자바 스크립트 상태 루프

이 코드는 스트림이 온라인인지 오프라인인지 알려줍니다. 하지만 상태를 확인하고 5 초마다 업데이트를 유지하려면 어떻게해야합니까?

$(function() { 
    $.ajax({ 
     type: 'GET', 
     url: "http://xmychannelx.api.channel.livestream.com/2.0/livestatus.json?callback=?", 
     dataType: 'jsonp', 
     success: function (jsonp) { 
      // parse the JSON data on success 
      var channel = eval(jsonp); 
      liveChannel = channel.channel.isLive; 

      if (liveChannel == true) { 
       document.getElementById('mydiv').innerHTML = '<p style="color: #00FF00">Online!</p>'; 
      } else { 
       document.getElementById('mydiv').innerHTML = '<p style="color: #C0C0C0">Offline!</p>'; 
      } 


     } 
    }); 
}); 
+0

은 5 초마다 ajax 호출을 시작하는 타이머를 설정합니다. – spiritwalker

답변

1

예 :

var myAjaxCall = function() { 
$.ajax({ 
    type: "GET", 
    url: options.feedUrl, 
    dataType: "xml", 
    async:options.sync, 
    success: function(xml) { 
     // todo 
    } 
}; 

var ResInterval = window.setInterval(myAjaxCall, 60000); // 60 seconds 

는 중지하려면 :

window.clearInterval(ResInterval); 
+0

그런 식으로 setInterval을 호출하는 것은 eval ...을 사용하는 것과 같습니다 (나쁜 관행으로 간주됩니다). 대신 다른 함수 (이름이 있거나 익명 임)를 사용해야합니다. – KaeruCT

1

사용 설정 시간 초과 기능

setTimeout(function(){ 
    //your function 
    foo(); 
},1000); 
0

이 밖으로 시도 :

function checkStatus() { 
    $.ajax({ 
     type: 'GET', 
     url: "http://xmychannelx.api.channel.livestream.com/2.0/livestatus.json?callback=?", 
     dataType: 'jsonp', 
     success: function (jsonp) { 
      // parse the JSON data on success 
      var channel = eval(jsonp); 
      liveChannel = channel.channel.isLive; 

      if (liveChannel == true) { 
      document.getElementById('mydiv').innerHTML = '<p style="color: #00FF00">Online!</p>'; 
      } else{ 
       document.getElementById('mydiv').innerHTML = '<p style="color: #C0C0C0">Offline!</p>'; 
      } 
     } 
    }); 
} 

$(function() { 
    setInterval(checkStatus, 5000); 
}); 

이렇게하면 checkStatus이 5000 밀리 초 (5 초)마다 호출됩니다.

+0

내 코드처럼 작동하지만 루핑되지 않습니다. 아마도 코드가 HTML 내부의 .js 파일에 있기 때문일 수 있습니다. html에는 없습니다. – brchannelbr

+0

제 잘못,'setInterval' 대신'setTimeout'을 사용했습니다. 'setTimeout'은 함수를 한 번만 호출하지만'setInterval'은 무한정 호출합니다. 나는 이미 정정으로 나의 대답을 편집했다. – KaeruCT