我使用 onbeforeunload 来重置带有 Ajax 请求的变量。但它只执行一次。例如,如果我访问页面(登录后)并关闭窗口,则执行该功能,但如果我重复该操作(在完成登录后将地址放入浏览器并关闭窗口),则不会执行该功能。
window.onbeforeunload = function (e) {
//Ajax request to reset variable in database
resetDemoValueWithAjax();
};
//Ajax request to reset variable in database and exit
function resetDemoValueWithAjax(){
$.ajax({
async:true,
type: "POST",
dataType: "json",
url:"http://localhost/site/index.php/welcome/resetDemoValue",
data: {name: "demo"},
success:function(){
document.location.href='http://localhost/site/index.php/auth/logout';
},
error: function(){
document.location.href='http://localhost/site/index.php/auth/logout';
}
});
}
document.location.href='http://localhost/site/index.php/auth/logout';
仅在其他时刻使用:当用户注销时。不在这里