0

ブラウザが開いているときにロードする

これが、このトピックに関連する私の以前の質問です。

私の問題は、私が使用しているサーバーAPIがリストに新しいアイテムを追加したことです。前の質問で述べたように、APIやjQueryにあまり精通していないため、これについて読むことをお勧めします。また、実用的なソリューション。jsが使用するフィールドが{"name": "Arthas"、 "slug": "arthas"、 "build": "12340"、 "status":1}のみで、残りがないようにする必要があります。

よろしくお願いします。

これはAPIです-> http://api.neverendless-wow.com/server-status

{"servers":[{"name":"Arthas","slug":"arthas","build":"12340","status":1},{"name":"Deathwing","slug":"deathwing","build":"13623","status":1}],"alerts":[]}

これは私の現在のjsです

function checkStatus()
{
    jQuery.getJSON("http://api.neverendless-wow.com/server-status",function(data){ 
    if (data.status == '1')     {jQuery('#ServStat').addClass('online').removeClass('offline').attr('label','Online');}
    else     {jQuery('#ServStat').addClass('offline').removeClass('online').attr('label','Offline');}});
}
checkStatus();
{
    setInterval(changeState, 300000)
}
4

2 に答える 2

1

データを配列(data [0])として使用する必要があるため、コードは次のようになります。

function checkStatus()
{
    jQuery.getJSON("http://api.neverendless-wow.com/server-status",function(data){ 
        if (data.servers[0].status == '1') { 
            jQuery('#ServStat').addClass('online').removeClass('offline').attr('label','Online');
        }
        else {
            jQuery('#ServStat').addClass('offline').removeClass('online').attr('label','Offline');
        }
    });
}

checkStatus();
{
    setInterval(changeState, 300000)
}
于 2012-05-25T17:44:38.603 に答える
1

私はおそらくこのようなもので行くでしょう:

// check server status
function checkStatus()
{
    $.getJSON(server_url, function(data) { 

      // reset
      var mode = "Offline";
      $('.status').removeClass('online').addClass('offline');

      // is available?
      if (data !== null && data.servers !== null && data.servers[0].status === 1) {
        mode = "Online";        
        $('.status').removeClass('offline').addClass('online');
      }

      // Extract data from received JSON string is exists
      extractData(data);

      // set needed attributes
      $('.status')
        .attr('label', mode)
        .text('Servers are ' + mode);
    });
}

JsBinで利用可能なライブデモ

于 2012-05-26T07:37:33.390 に答える