2012-11-12 40 views
0

我更新的完整劇本:更新數據秒

$(document).ready(function() { 
       $.getJSON('table.json',function(data){ 

        $('#mytable').empty(); 
        var html = ''; 
        html += '<tr class="tableheader"><th>Name</th><th>Code</th><th>Value</th><th>Bid</th><th>Offer</th></tr>'; 
        for (var i=0, size=data.length; i<size;i++) {       
          html += '<tr class="tablecontent"><td>'+ data[i].name+ '</td><td>'+ data[i].code+ '</td><td>' 
             + data[i].value+ '</td><td>' 
             +data[i].bid+'</td><td>'+data[i].offer+'</td></tr>'; 
          } 

      $('#mytable').append(html); 
      tablerows('mytable'); 
      setTimeout(poll,5000); 

     }); 




     }); 

     var poll = setInterval(function(){ 
     $.ajax({ 
     type:"GET", 
     url: "dummy.json", 
     success: function(data){ 
     //HANDLE DATA 
     setTimeout(poll,5000); 
    } 
    }); 
},5000); 

請幫我在這。我有3個JSON。 1st Json將首先加載。完成了。

第二個json需要被解析(它有2個字段的變化),並顯示初始的json +改變的字段,然後從第三個JSON再次顯示。

我寫了下面的腳本:

var poll = setInterval(function(){ 
     $.ajax({ 
     type:"GET", 
     url: "dummy.json", 
     success: function(data){ 
     //HANDLE DATA 
     JSON.parse(data); 
    } 
    }); 
},5000) 

dummy.json是我第二次改變JSON。這是正確的方法嗎?我應該如何在$(document).ready中調用這個函數函數?

+0

你不需要'JSON.parse'; jQuery已經爲你做了。 – ThiefMaster

+0

是否使用setInterval確保您的第一個結果等已返回的唯一原因? – Liam

+0

是利亞姆。但數據在5秒後沒有更新。 – user1814044

回答

0

將其設置爲常規函數,然後在成功處理程序中從自身調用它,以便您永遠無法領先於自己。然後,您也可以從$(document).ready中調用一次。

var poll = function(){ 
    $.ajax({ 
     type:"GET", 
     url: "dummy.json", 
     success: function(data){ 
     //HANDLE DATA 
      setTimeout(poll,5000); 
     } 
    }); 
} 
+0

試過這個。但數據沒有得到更新! – user1814044

+0

我更新的腳本: – user1814044

+0

它是第一次更新嗎?是否有任何數據從ajax調用回來? – qooplmao