Моя проблема в том, что когда пользователь закрывает вкладку, мне нужно вызвать ajax, чтобы обновить время выхода из системы в базе данных. Поэтому я попробовал приведенный ниже код после некоторого исследования, но тем не менее он не работает.
Я заметил это. Это автоматический выход из системы через 20 секунд после добавления приведенного ниже сценария в JS.
Я использовал приведенный ниже код, но это не тот код, который был предложен командой пользователей SO.
window.onbeforeunload = function(){
// var msg="Are you sure want to close this tab";
// return msg;
$.ajax({
method:"POST",
async: false,
url:baseUrl+"/Employee_control/logoutTimeUpdate"
});
так что я изменил это на это, но все еще не работает.
var _wasPageCleanedUp = false;
function logoutTimeUpdate()
{
if (!_wasPageCleanedUp)
{
$.ajax({
type: 'GET',
async: false,
url:baseUrl+"/Employee_control/logoutTimeUpdate",
success: function ()
{
_wasPageCleanedUp = true;
alert("hello");
}
});
}
}
$(window).on("unload", function ()
{
logoutTimeUpdate();
});
Контроллер
public function logoutTimeUpdate(){
$updatedLogoutTime=$this->Employee_model->logoutTimeUpdate();
if ($updatedLogoutTime == 1) {
$this->session->unset_userdata('login_session');
$this->session->sess_destroy();
}
}
}
Модель
public function logoutTimeUpdate(){
$data = array('logout_time' =>$this->current_date);
$where = array('login_id'=>$this->session->userdata['login_session']['id']);
$this->db->where($where);
$this->db->update('tbl_current_login', $data);
return 1;
}