サーバーが応答するのに十分な速さである場合、この方法はかなり信頼できます。しかし、本当に気をつけなければならないことがあります。ブラウザーを閉じてアンロード イベントで AJAX 要求を送信すると、ウィンドウ オブジェクトが破棄される前に応答がサーバーから返されない可能性が非常に高くなります。この場合 (少なくとも IE では)、接続オブジェクトが孤立し、接続タイムアウトになるまで正しく終了しません。サーバーで接続キープアライブがオンになっていない場合、2 つのウィンドウを閉じた後 (別のウィンドウを開いたまま)、サーバーへの開いている接続が不足します (IE6-7 の場合、IE8 - 6 ウィンドウの場合)。接続タイムアウトになるまで、Web サイトを開くことができません。
以前、アンロード時に AJAX リクエストを送信するポップアップ ウィンドウを開いたときに、このような状況に遭遇しました。非常に信頼性が高いのですが、上記の問題に悩まされ、追跡するのに非常に長い時間がかかりました。ダウンし、何が起こっているのかを理解してください。その後、私がしたことは、ウィンドウを開くときにサーバーを呼び出すための同じコードがあることを確認し、アンロードごとにオープナーをチェックし、存在する場合はそこでコードを実行することでした。
最後のブラウザ ウィンドウを閉じると、IE は接続を適切に切断するようですが、別のウィンドウが開いていると切断されません。
PSそして、上記の答えについてコメントするだけで、AJAXは実際には非同期ではありません。少なくともJS実装はそうではありません。リクエストを送信した後も、JS コードはサーバーからの応答を待っています。コードの実行をブロックするわけではありませんが、サーバーが応答するまでに時間がかかる場合があるため (または、Windows が IE ウィンドウ オブジェクトを終了するのに十分な時間)、上記の問題に遭遇する可能性があります。