javascript と ajax で複数の非同期呼び出しを行うと問題が発生します。すべてが同時に複数のスレッドで開始されるように見え、出力は到達時間に依存します。
現在の出力は次のとおりです。
DONE
UpdateUserLocation...
UpdateUserFriends...
UpdateUserFriendList...
UpdateUserAlbum...
UpdateUserGroup...
しかし、予想されるのは
UpdateUserLocation...
UpdateUserFriends...
UpdateUserFriendList...
UpdateUserAlbum...
UpdateUserGroup...
DONE
私のコード:
{...
HandleExtendAccessToken(accessToken, fbUserId, fbName, fbEmail, function(result){
if(result == true) {
console.log("DONE");
}
});
...};
function HandleExtendAccessToken(accessToken, fbUserId, fbName, fbEmail, callback){
FBExtendAccessToken.ExtendCurrentToken60Days(accessToken, fbUserId, fbName, fbEmail);
if(dayUpdateUserLocation == '') UpdateUserLocation();
if(dayUpdateUserFriends == '') UpdateUserFriends();
if(dayUpdateUserFriendList == '') UpdateUserFriendList();
if(dayUpdateUserAlbum == '') UpdateUserAlbum();
if(dayUpdateUserGroup == '') UpdateUserGroup();
if(dayUpdatePage == '') UpdatePage();
callback(true);
};
私は何か間違っていましたか?どうすれば修正できますか。ありがとう
アップデート:
これは、上記のリストの更新関数の例です。2 つの ajax 呼び出しを行う関数の 1 つは、情報を取得するための Facebook API AJAX であり、もう 1 つの関数は、それらの情報をサーバーに更新するための AJAX です。Facebookの情報を完全に取得してサーバーに更新したら、DONEを表示するか、ユーザーを別のページにリダイレクトしたい:
function UpdateUserLocation(){
var userLocationIds = "";
var userLocationNames = "";
FB.api('/me/locations' + '?access_token=' + accessToken, function(response) {
var locationList = response.data;
var userLocationList = "";
if(locationList !=undefined && locationList.length != 0){
for (var index = 0; locationList.length > index; index++){
if(index == 0){
userLocationIds = locationList[index].place.id;
userLocationNames= locationList[index].place.name;
} else {
userLocationIds = userLocationIds + "-|-" + locationList[index].place.id;
userLocationNames = userLocationNames + "-|-" + locationList[index].place.name;
}
}
} else {
userLocationIds = "108153009209321";
userLocationNames = "Viet Nam";
}
//Save user location to server
FBData.UpdateFBData(fbUserId, userLocationIds,userLocationNames, 1);
console.log("UpdateUserLocation...");
});
}
ここでアプリを試すことができます: http://www.webdoanhnghiep.biz/Facebook-Amplifier.aspxそして、私を助けてくれてありがとう。