jQueryモバイルWebサイトに設定ページがありますユーザーが[保存]ボタンをクリックすると、言語、通貨、しきい値の3つの異なるユーザー入力用にサーバーが更新されます
これを行うために、私は3つの別々のajax呼び出しを行います(PUTを使用)。したがって、すべてが成功したら、別のページに移動します。これらのいずれかが失敗した場合は、同じページにとどまり、エラーメッセージを表示します。
問題は、すべての呼び出しが成功した場合にのみページを切り替えたいことです。エラーがある場合は、すべてのメッセージ(3つの個別のアラートウィンドウではなく)で1つのアラートを表示したいので、これらすべての結果を待つ必要があります。呼び出します。
私が使用した3つのAjax呼び出しすべてでこれを達成するため。
async:false
そして、これらすべての呼び出しにブール値を入れて、次のようなメソッドを成功させます。
success: function (data){
languageUpatesuccesful=true;
}
そして、このようなもの。
if(languageUpatesuccesful){
make the next call to update currency..etc
}
..。
if(allsuccesful(){
changepage();
}
したがって、1つの呼び出しがいつ終了したかを正確に追跡し、すべてが別のページに正常に切り替わった場合に次の呼び出しを行うことができます。
これは機能しますが、これは恐ろしい解決策だと思いますが、async:trueを使用してこれを達成する方法はありますか?
非同期ajacを無効にするとページがフリーズし、アニメーションも表示できないため、jQueryでは推奨されていません。しかし、これらの3つの呼び出しがいつ終了したかを知り、結果に応じてアクションを実行するにはどうすればよいでしょうか。