Я делаю небольшое приложение для чата с PHP + MySQL + JavaScript, я написал функцию disonnectUser (), которая вызывается, когда пользователь нажимает кнопку отключения. Вот оно:
function disconnectUser(){
$.post('web/WEB-INF/classes/handleChatUser.php',{ action: 'disconnect',nick: localNickname});
$('#chat').stop(true,true).fadeOut(2000,function(){
nicknameDialog();
});
$('#messageInput').val(null);
$('#clientList').html(null);
$('#chatScreen').html(null);
clearInterval(refreshIntervalId);
clearInterval(refreshIntervalId2);
connected = false;
}
И это работает как талисман, но когда я вызываю эту функцию в другом контексте, когда пользователь вместо нажатия кнопки разъединения просто выходит из страницы, в этой функции
$(window).unload(function() {
if(connected){
disconnectUser();
connected = false;
}
});
это не работает. И я уверен, что он вызывается, потому что, если я ставлю предупреждение, оно вызывается нормально перед закрытием страницы. Я думаю, что страница закрывается до того, как код полностью запустится, поэтому я думаю, что если я добавлю туда какой-то блок до завершения выполнения кода, он будет работать?