在用户单击注销按钮时的网页上,我有一个 JavaScript 函数,它清除存储在 MongoDB 上的用户会话。它工作正常。
我还想在用户关闭浏览器时清除用户会话。这是我面临的问题:当用户单击刷新图标时,将调用注销功能。我只希望在关闭浏览器时调用此函数。
我可以阻止这个函数在页面刷新时调用吗?
我的逻辑是在浏览器关闭时清理会话。我正在删除 MongoDB 上的会话。有没有更好的方法来管理会话?
var isRefresh = false;
$(window).keydown(function (event) {
if (event.keyCode == 116) { // User presses F5 to refresh
refresh = true;
}
});
// Calls the logout function when you close the browser thus cleans the session data.
var windowsCloseEventListener = window.attachEvent || window.addEventListener;
var chkForBrowserCloseEvents = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; /// make IE7, IE8 compitable
windowsCloseEventListener(chkForBrowserCloseEvents, function (e) { // For >=IE7, Chrome, Firefox
if (!isRefresh) {
$scope.logout();
}
});