我需要检测用户何时关闭浏览器,以保存数据库中的记录,
那么我怎么知道用户何时关闭浏览器?在laravel 5
答案 0 :(得分:3)
默认情况下不能。 Laravel是服务器端脚本的框架。 HTTP是stateless protocol。服务器在发送请求时只知道客户端。话虽如此,您可以实现一种机制来定期从每个连接的客户端发送“ping”请求。缺少这些ping请求可能表示用户serssion结束。
答案 1 :(得分:0)
最后我解决了这个问题并且可以检查连接是否失败,或者关闭他的浏览器或关闭他的计算机而不从我的网站注销,将他从我的网站登出并记录他退出的时间
解决方案:
Java脚本: setInterval(function(){
$.ajax({
url: '/home/outFromSystem' ,
type: 'POST',
data: {
},
success: function(result) {
console.log(result);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
},50000);
PHP: 公共功能outFromSystem(){
ignore_user_abort(true);
for ($i = 0; $i < 10; $i++) {
flush();
ob_flush();
if (connection_aborted()) {
// your code
}
sleep(1);
}
}