次のことを発見しました(クライアント側とサーバー側の両方のコードにいくつかのブレークポイントを設定することにより):
ハンドラーがある場合window.onunload
、ブラウザーが http-request を新しいページに送信した後に実行されます。
- 次のページに移動します
- ブラウザは http-request を新しいページに送信します
- ブラウザーはアンロード ハンドラーを実行し、実行が完了するまでレンダリング プロセスを一時停止します。
- 新しいページが表示されます。
Chrome と Firefox の両方でこれをテストしました。
どうして?この奇妙な行動の理由は何だと思いますか?
PS。これを発見した方法は次のとおりです。ajaxを介してデータを保存するアンロードハンドラーがありました。その後、ナビゲートしていた新しいページに、DB からの古いデータがまだ表示されていることがわかりました。これは考えさせられました...