Jquery getJSON调用似乎只触发一次?
我有一个setInterval,它(每10秒)调用下一个函数:Jquery getJSON调用似乎只触发一次?,jquery,getjson,Jquery,Getjson,我有一个setInterval,它(每10秒)调用下一个函数: function myJSONCall(imgIDs) { var href = $('#href_' + imgIDs[0]).attr('href'); alert("MyJSONCall..." + href); $.getJSON("/mvc-ajax/ac/availability", { url: href }, function(
function myJSONCall(imgIDs) {
var href = $('#href_' + imgIDs[0]).attr('href');
alert("MyJSONCall..." + href);
$.getJSON("/mvc-ajax/ac/availability", {
url: href
}, function(availability) {
alert("Availabilit=" + availability);
if (availability == "OK") {
alert("It's a valid location");
} else {
alert("It's an invalid location");
}
});
alert("I left from myJSONCall");
}
我不知道为什么,“getJSON”只触发了一次。$.getJSON之间的两个“警报”设置每隔10秒显示一次。那么问题出在哪里呢?ajax是异步的。在ajax调用返回后移动设置超时(或间隔):
function myJSONCall(imgIDs) {
var href = $('#href_' + imgIDs[0]).attr('href');
alert("MyJSONCall..." + href);
$.getJSON("/mvc-ajax/ac/availability", {
url: href
}, function (availability) {
alert("Availabilit=" + availability);
if (availability == "OK") {
alert("It's a valid location");
} else {
alert("It's an invalid location");
}
setTimeout(myJSONCall, 10000); //SET TIMEOUT HERE
});
alert("I left from myJSONCall");
}
@Neal:正如我建议的,我在getJSON调用后移动了setInterval,但没有成功!现在ajax函数只调用一次。不要使用
setInterval
。使用setTimeout
@Zamboo,这也可能意味着您使用了错误的函数。尝试使用$。get
而不是$。getJSON
。@Neal:当你在答案中设置setTimeout时,我复制/跳过它…我想我不能使用“get”,因为我在java服务器上使用JSON/JACKSON交换数据…@Neal:我必须检查,因为另一边有一些java代码。。。但是你是对的,对于$.get,它每10秒触发一次,但是setTimeout不合适,我使用setInterval。谢谢你抽出时间。