ユーザーがブラウザウィンドウを閉じたときにサーバーに通知したい。
私はすべてを試しました
$(window).bind("beforeunload", function() {
$.get("${contextPath}/notify?direction=logout");
});
と
$(window).unload( function() {
$.get("${contextPath}/notify?direction=logout");
});
と
$(window).unload(function() {
$.ajax({
url: "${contextPath}/notify?direction=logout"
});
});
しかし、マニュアルではおそらくそうすべきだと言われているにもかかわらず、どちらもうまく機能しません。
Firefox では、ウィンドウを閉じたときだけ通知はありませんが、ページの更新時に通知があります。Chrome にはどちらもありません。
このスクリプトを Firebug または Chrome Developer Tools でトレースしようとしたところ、トレースすると機能し始めていることがわかりました。そのため、ウィンドウを閉じたりナビゲートしたりする前にリクエストを送信する時間がないため、正常に動作しないと思います。
これは本当ですか?私の仕事を達成する方法は?
解決
これはうまくいきました:
$(window).bind("beforeunload",
function() {
$.ajax({
async: false,
url: 'notify'
});
}
);