2011-06-27 13 views
0

私はsetintervallウィッヒコール(すべての10S)の次の機能があります:「getJSONは」一度だけトリガーされる理由は、私にはわからないgetJSONコールは1回だけ起動しますか?

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の間に設定された両方の "警告"は10秒ごとに表示されます。だから問題は何ですか ?

答えて

1

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"); 
} 
+0

@Neal:getJSON呼び出しの後にsetIntervalを移動しましたが、成功しませんでした。今ではajax関数は1回だけ呼び出されます。 – Zamboo

+0

'setInterval'を使わないでください。 'setTimeout' – Neal

+0

@ Zambooを使うと、間違った機能を使っている可能性もあります。 '$ .getJSON'の代わりに' $ .get'を使ってみてください... – Neal

関連する問題