我需要当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 :(得分: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);
}
答案 1 :(得分: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);
});
}
答案 2 :(得分:0)
在每个上操作DOM都很昂贵,你应该进行这种优化:
var opts = "";
$.each( data, function( key, value ) {
opts += '<option>'+value.title+'</option>';
});
$('#nameplaylist').append(opts);
其他回复似乎解决了循环问题。