2014-02-15 37 views
0

我需要當Dom準備好循環無限檢查getjson,如何可以? 還是有另一種形式嘗試?

$(document).ready(function() { 
    $.getJSON("js/json/nameplaylist.json", function(data) { 
     var items = []; 
     $.each(data, function(key, value) { 
      $('#nameplaylist').append('<option>'+value.title+'</option>') 
     }); 
    }).fail(function(){ // If the AJAX call encountered an error 
     console.log('no load nameplaylist'); 
     }); 
} 
+0

這是nameplaylist.json返回所有的值還是隻是新的? – Wilmer

回答

0

你可以使用超時,這樣的事情:

$(callJSON); 

function callJSON() { 
    $.getJSON("js/json/nameplaylist.json", function (data) { 
     var items = []; 
     $.each(data, function (key, value) { 
      $('#nameplaylist').append('<option>' + value.title + '</option>') 
     }); 
    }).fail(function() { // If the AJAX call encountered an error 
     console.log('no load nameplaylist'); 
    }).always(function() { 
     setTimeout(callJSON, 5000); 
    }); 
} 
0

您可以使用setInterval()

$(document).ready(function() { 
    function load() { 
     $.getJSON("js/json/nameplaylist.json", function (data) { 
      var items = []; 
      $.each(data, function (key, value) { 
       $('#nameplaylist').append('<option>' + value.title + '</option>') 
      }); 
     }).fail(function() { // If the AJAX call encountered an error 
      console.log('no load nameplaylist'); 
     }); 
    } 
    //load on dom ready 
    load(); 
    //load every 5 seconds 
    setInterval(load, 5000); 
} 
+0

它最好的形式來嘗試?即時通訊找到優化我的代碼,消耗很少的資源 – Cazs

0

操縱在每個DOM是你應該做這個優化昂貴:

var opts = ""; 
$.each(data, function(key, value) { 
    opts += '<option>'+value.title+'</option>'; 
}); 
$('#nameplaylist').append(opts); 

其他答覆似乎已經解決了循環問題。