2013-06-04 25 views
0

但现在我有其他问题。我不知道如何从cwok从XML获得价值每5秒Highcharts从XML每载入数据1

XML文件

<user name="Name1" status="online" ip="0.0.0.0"> 
<stats> 
    <cwok>100</cwok> 
    <cwnok>0</cwnok> 
    <cwignore>0</cwignore> 
</stats> 
</user> 
<user name="Name2" status="online" ip="0.0.0.0"> 
<stats> 
    <cwok>200</cwok> 
    <cwnok>0</cwnok> 
    <cwignore>0</cwignore> 
</stats> 
</user> 

Highcharts脚本从XML读取数据

// Load the data from the XML file 
$.get('oscamapi.html?part=userstats', function(xml) { 

    // Split the lines 
    var $xml = $(xml); 

    // push series 
    $xml.find('user').each(function(i, series) { 

      var seriesOptions = { 
       name: $(series).attr('name'), 
       data: [] 
       }; 

      // push data points 
      $(series).find('stats cwok').each(function(i, point) { 
        seriesOptions.data.push(
          parseInt($(point).text()) 
        ); 
      }); 

     // add it to the options 
     options.series.push(seriesOptions); 
    }); 
    var chart = new Highcharts.Chart(options); 
    }); 
}); 

感谢您的想法,帮助

+0

我相信你必须为此做一些setinterval函数,这里是一个post设置一个ajax调用每10秒重复一次。 http://stackoverflow.com/questions/5687600/jquery-call-ajax-every-10-seconds – Bearcat9425

回答

0

您需要在setInterval()中调用ajax,然后获取数据。我假设你想获得来自secong用户部分数据:

<user name="Name2" status="online" ip="0.0.0.0"> 
<stats> 
    <cwok>200</cwok> 
    <cwnok>0</cwnok> 
    <cwignore>0</cwignore> 
</stats> 
</user> 

所以,你可以使用相同的解析器XML但修改后的用户线:

$xml.find('user[name="Name2"]') 

AJAX:

chart:{ 
    events:{ 
     load:function(){ 
      setInterval(function(){ 
       $.ajax()... 
      },1000); 
     } 
    } 
}