Jquery: выгрузить или загрузить?
Я хочу отправить сообщение на сервер, когда пользователь переходит от текущей страницы, я использую .unload прямо сейчас, но результат ненадежен, даже в его документе сказано true:
Точная обработка события разгрузки варьируется от версии к версии браузеры. Например, некоторые версии Firefox запускает событие, когда ссылка, но не тогда, когда окно закрыто. В практическом использовании, поведение должно быть проверено на всех поддерживаемых браузеров и с проприетарной предварительной загрузкой событие.
Должен ли я использовать событие beforeunload? Надежность?
Ответы
Ответ 1
Да, beforeunload
более надежный, но обязательно назначьте его напрямую (не связанный через jQuery), например:
window.onbeforeunload = function() { /* do stuff */ };
Событие unload
само по себе не предназначалось для выполнения работы, а только для очистки объектов... поскольку сборщики мусора становятся все лучше и лучше, есть меньше причин для браузера даже запускать событие unload
.
Также имейте в виду, что для вашего конкретного случая вам нужно будет сделать синхронный запрос на сервер... иначе браузер все равно не будет ждать завершения вызова AJAX.