我已经设置了一个AJAX函数,可以帮助我在15分钟不活动后注销用户 - 我的意思是这里没有页面刷新,而且它运行良好。
然而问题是用户可以仍然工作(点击对象,发送AJAX调用等)而无需刷新页面。但是他将在15分钟内断开连接。
如何处理支票会话系统中的点击和AJAX调用?
function xhrSessionIsExpired(controller) {
$.ajax({
url: controller + "/xhrSessionIsExpired",
type: "GET",
dataType: "json",
cache: false,
beforeSend: function() {},
success: function(json) {
if (json == 'alive') {
console.log('alive');
}
if (json == 'expired') {
console.log('expired');
document.location.href = baseUrl + 'index/timeout';
}
if (json == 'out') {
console.log('out');
document.location.href = baseUrl + 'index/disconnected';
}
setTimeout ("xhrSessionIsExpired('" + controller + "');", 15000);
},
complete: function() {},
error: function(jqXHR, textStatus, errorThrown) {
showAjaxMessage (7041, "error", allMsg["allMsgAjax"]["error"]);
console.log(textStatus, errorThrown);
}
});
}
function xhrSessionIsExpired()
{
if (Session::get('loggedIn') == true)
{
if (Session::expired() == false)
{
$res = 'alive';
}
else
{
$res = 'expired';
$return = Session::destroy();
}
}
else
{
$res = 'out';
}
echo json_encode($res);
}