このコード例では、関数logout()
はすべての非同期呼び出しを実行せず、終了するまで待機しません。代わりにページがアンロードされます。 beforeunload
イベントによってページがアンロードされます。私が試してみたい何遅延非同期関数の待機(beforeunloadイベント)
$(window).on('beforeunload', function(event) {
event.preventDefault();
logout();
return;
});
はlogout()
のいくつかの非同期呼び出しが完了した後にイベント関数が戻るということです。
編集:私の目標はではありませんこれにアラートを表示する!私はページがアンロードされる前にいくつかのコードを実行したいだけです。ログアウト関数には、終了する必要のある持続時間を持つajaxリクエストとjQueryアニメーションが含まれている可能性があります。
私はコールバックを試しましたが、これはコールバックに戻ってきたもので、目的の結果でないものは、イベント関数ではありません。
$(window).on('beforeunload', function(event) {
event.preventDefault();
logout(function(x) { return; });
});
ページを閉じるときにjquery beforeunloadの複製がありますか?](http://stackoverflow.com/questions/18783535/jquery-beforeunload-when-closing-not-leaving-the-page) –
@ E.Mouritsいいえ、あなたは私の質問を読んだことがありますか?離脱とナビゲートの区別とは関係ありませんが、ページがアンロードされる前にコードを実行するか、新しいページがロードされます。 – ScientiaEtVeritas
私が知る限り、ユーザーがあなたのページを離れないようにすることはできません。可能な重複はあなたが望むものに最も近いと思った答えです。 –