Ajax Mess试图创建SetInterval函数

时间:2012-10-03 19:50:59

标签: php jquery ajax arrays intervals

好的,我之前问了一个问题,但我遇到了一个全新的问题。我在PHP脚本服务器端有一个PHP数组。我正在尝试编写一个客户端Ajax脚本来重新编写PHP脚本以获取新数据并更新页面上显示的统计信息。

这是我确定我做得不对的Ajax:

setInterval(function(getLatestInfo) 
{  
    $.ajax({
    type: 'POST',
    url: 'script.php',
    data: 'id=data',
    dataType: 'json',
    cache: false,
    success: function(getLatestInfo){
    $.getJSON(script.php, function(getLatestInfo){
    var result_array = JSON.parse(result);
    });
    $('#bit_rate').html(result_array[4]);
    $('#listeners').html(result_array[5]);
    $('#current_song').html(result_array[9]);
                });
            });
            }, 10000);//time in milliseconds  

这是PHP:

            <?php 
            Function getLatestInfo() {

$SERVER = 'http://chillstep.info:1984'; 
$STATS_FILE = '/status.xsl?mount=/test.mp3'; 
$LASTFM_API= '00000000000000000'; 

$ch = curl_init(); 

curl_setopt($ch,CURLOPT_URL,$SERVER.$STATS_FILE); 

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 

$output = curl_exec($ch); 

curl_close($ch); 

$dp = array(); 

$search_for = "<td\s[^>]*class=\"streamdata\">(.*)<\/td>"; 
$search_td = array('<td class="streamdata">','</td>'); 

if(preg_match_all("/$search_for/siU",$output,$matches)) { 
   foreach($matches[0] as $match) { 
      $to_push = str_replace($search_td,'',$match); 
      $to_push = trim($to_push); 
      array_push($dp,$to_push); 
   } 
} 

$x = explode(" - ",$dp[9]); 

echo json_encode($dp);
            }
 ?>

简而言之,我需要这个ajax脚本来更新和拉取PHP变量$ dp,这是一个数组,解析它,并创建HTML可用的字符串变量。并且每10秒重复一次。

1 个答案:

答案 0 :(得分:0)

在此实例中不要使用setInterval。在成功回调中再次调用原始函数。你也在ajax调用的成功回调中调用getJSON - 这是重复调用。

例如

function getlatest()
{
  $.ajax({
  //rest of ajax param
  success : function(results){
    var resultarray = $.parseJSON(results);
    $('#bit_rate').html(result_array[4]);
    $('#listeners').html(result_array[5]);
    $('#current_song').html(result_array[9]);
    getlatest();
  }
  });
}