我有一個需要執行的日誌方法,直到ajax方法:getUserIP獲取值。 getUserIP將在$ document.ready()方法中運行,並且在其成功方法中,它將運行另一個名爲getsas方法的ajax方法。 這樣的代碼:如何執行該方法,直到每個Ajax方法獲取數據
var userIP,sasToken,isReady;
$(document).ready(function () {
getUserIP();
});
function getUserIP() {
if (!userIP) {
$.ajax({
type: "GET",
url: "http://jsonip.com?callback=?",
dataType: "jsonp",
jsonp: "callback",
jsonCallback: "jsonCallBack",
success: function (data) {
callback(data);
getSASEveryMinute();
}
});
}
}
//Handle the response data from jsonip and SASTokenService.svc
//save them in globle varible
function callback(data) {
if (data.ip)
userIP = data.ip
else {
sasToken = data.sasToken;
isReady = true;
}
}
function getSASEveryMinute() {
url = "http://asdfasdf/TokenService.svc/json/Logs/" + userIP;
getSAS();
function getSAS() {
$.ajax({
url: url,
type: 'GET',
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonCallback",
success: function (data) {
callback(data);
}
});
}
setInterval(function() {
getSAS();
}, 60000);
}
function insertEntity(entity) {
if (isReady) {
entity.PartitionKey = userIP;
insert(entity);
}
else {
setTimeout(function() { insertEntity(entity) }, 2000);
}
我們是否有更好的方法,然後
setTimeout(function() { insertEntity(entity) }, 2000);
非常感謝!
尋找jQuery'when()':http://api.jquery.com/jQuery.when/ – mishik
你真的打算讓'getSAS'調用ad-infinitum嗎?你永遠不會取消'setInterval'循環。 – Alnitak
是的,我需要每分鐘撥打電話 – EthenHY