Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery getJSON调用似乎只触发一次?_Jquery_Getjson - Fatal编程技术网

Jquery getJSON调用似乎只触发一次?

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(

我有一个setInterval,它(每10秒)调用下一个函数:

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。谢谢你抽出时间。