Я хотел бы, чтобы при загрузке и выгрузке страницы вызывалась функция javascript, которая будет устанавливать и сбрасывать переменную сеанса. В настоящее время javascript (в соответствии с PHP) выглядит следующим образом (использует jQuery)
window.onbeforeunload = function() {
$.post('Example.php?y=".$id."&dir=0');
}
$(document).ready(function() {
$.post('Example.php?y=".$id."&dir=1');
});
Они включены в скрипт php, где $ id - это переменная, передаваемая на страницу. Example.php - это скрипт, вызываемый с использованием ajax, который просто добавляет переменную $ id в массив, хранящийся как переменную $ _SESSION, если dir = 1, и удаляет переменную из массива, если dir = 0.
Проблема в том, что это просто ИНОГДА работает как положено. Когда я загружаю страницу, массив сессии всегда корректно обновляется. Когда я выгружаю страницу, иногда она работает, а иногда нет. Я предполагаю, что, поскольку это асинхронные функции, переменная устанавливается вызовом функции .ready ПОСЛЕ разгрузки страницы. Но несоответствие сохраняется, даже если я на некоторое время оставлю страницу, а затем разгрузлю ее. Я что-то не так делаю в функции выгрузки?
Пробовал установку ajax: ложь в пост-звонке
Попытка с использованием конструкции $(window).unload()
jQuery, которая просто не работала.
Использование Google Chrome