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