XMLHttpRequest が状態 2 に達したときにコードのブロックを実行しようとしています。状態 2 にしたい理由は、ユーザーがサーバーの応答を待たないようにするためです (この時点でユーザーをリダイレクトします)。
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 2) {
window.location.href = urlFromPreviousAjaxcall;
}
}
xmlhttp.open("POST", "url", true);
xmlhttp.send();
ただし、if(xmlhttp.readyState == 2) 内のコード ブロックは、サーバーが呼び出しの処理を完了するとすぐに呼び出されます。この部分は、呼び出しが行われるとすぐに (サーバーからの待機なしで) 実行する必要があります。
ドキュメントでは、呼び出しが送信されるとすぐに状態 2 に達することがわかりました。しかし、そうではありません。
アップデート:
私が行おうとしている呼び出しには、サーバーで Api を呼び出すことが含まれます (これは完了するまでに時間がかかります)。クライアントにとって、呼び出しに何が起こるかは問題ではありません。私が望む唯一のことは、呼び出しが実行されることです。だから基本的にここでスピードを上げようとしています。
ユーザーをリダイレクトするとすぐに、コードの実行が停止することがわかっています。ただし、サーバーへの呼び出しが行われている必要があります(そして送信されます)。
私は何が欠けているか、間違っていますか?