我目前正在调用外部php文件并在特定div中显示它们。这都是使用标准的jQuery $ .ajax调用完成的。
然而,当其中一个页面被拉入时尝试进行以下getJSON调用时会出现问题,从而导致无限循环:
function getContacts() {
if ($('body.all-contacts').length){
$.getJSON('assets/data/contacts.json', function(data) {
var template = $('#contacts-template').html();
var info = Mustache.to_html(template, data);
$('.contact-list').html(info);
});
}
};
上述函数调用如下:
$(document).ajaxComplete(function(){
....
getContacts();
....
})
我也尝试过使用ajaxStop()而不是ajaxComplete(),但问题仍然存在。
答案 0 :(得分:1)
无限循环对我来说似乎很正常。由于在getJSON完成时调用函数getContacts,getContacts包含getJSON调用,因此调用将再次触发,这将导致另一个ajaxcomplete回调,这将再次触发getContacts函数。等等。
要阻止发生这种情况,您可以删除ajaxcomplete函数中的getContacts()。
如果你想保持无限循环,但每次ajax调用之间有时间间隔,你可以使用javascript函数setTimeout。功能格式:
setTimeout("javascript function",milliseconds);
答案 1 :(得分:0)
getContacts()
呼叫完成时,不应该调用{p> getContacts()
。
如果您需要调用该函数,当另一个函数完成时,请确保(使用if ...
)它已完成getContacts()
。