0

好的,javascript 中的简单事情,我什至在网上搜索都无法解决。我想我什至找到了正确的东西,但无法放在正确的位置。

此代码告诉我流是在线还是离线。但是我该如何处理状态并保持每 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>';
            }


        }
    });
});
4

3 回答 3

1

使用设置超时功能

setTimeout(function(){
  //your function
  foo();
},1000);
于 2013-02-11T02:51:50.440 回答
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);
于 2013-02-11T02:53:13.627 回答
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 秒)调用一次函数。

于 2013-02-11T02:54:26.200 回答