を掛けることなく、完了を待つアヤックス:呼び出されているサーバー上の
function CallWebServiceToUpdateSessionUser(target, user)
{
var dataText = { "jsonUser": JSON.stringify(user) };
$.ajax({
type: "POST",
url: target,
data: JSON.stringify(dataText),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response)
{
return true;
},
failure: function (msg)
{
return false;
}
});
}
とターゲット関数が取ることができ〜15秒間応答します。
は、サーバコールが完了するまでを終了しないことをどのように保証しますか?または、この関数を呼び出す人がtrue/falseを取得し、未定義ではないことをどうすれば保証できますか?
注: 私が見た人は、非同期使用:偽それは、私はしたくないUIをハングアップします。
.ajax()はデフォルトでは非同期で、asyncをfalseに設定しない限り、ブラウザをハングしません。コンソールでのデバッグでは何が表示されますか?ところで、あなたは、呼び出しが完了するまで機能を終了させないように頼んであなたの自己と矛盾しているように見えますが、あなたは待っていないと言います。どちらですか? – j08691
UIをハングすることなく、サーバーが応答するまでブラウザーを止めたいとします。それは矛盾です。 ブラウザがあなたの機能に邪魔されている間は、何も処理できません。 –
なぜ機能を終了したくないのですか? UIスレッドをもう一度解放するためには、これがまさにあなたが欲しいものです。 「ローディング」メッセージをポップアップしてから、サーバーから応答を受け取ったら作業を再開するだけです。ユーザーが応答を取り消す可能性がある(または少なくとも結果を無視する)可能性があります。 –