JQuery: выгрузить или до загрузки?

Я хочу опубликовать сообщение на сервере, когда пользователь уходит с текущей страницы, я сейчас использую.unload, но результат ненадежен, даже в его документе сказано true:

Точная обработка события unload варьировалась от версии к версии браузера. Например, в некоторых версиях Firefox событие запускается при переходе по ссылке, но не при закрытии окна. При практическом использовании поведение должно быть протестировано во всех поддерживаемых браузерах и противопоставлено проприетарному событию beforeunload.

Должен ли я использовать событие beforeunload? Это надежно?

1 ответ

Решение

Да, beforeunload является более надежным, но не забудьте назначить его напрямую (без привязки через jQuery), например так:

window.onbeforeunload = function() { /* do stuff */ };

unload само событие не предназначалось для выполнения работы, только для очистки объектов... поскольку сборщики мусора становятся все лучше и лучше, у браузера меньше причин даже запускать unload событие.

Также имейте в виду, что в вашем конкретном случае вам нужно будет сделать синхронный запрос к серверу... в противном случае браузер по-прежнему не будет ждать завершения вызова AJAX.

Другие вопросы по тегам