Какую активность разрешают браузеры при выгрузке? - PullRequest
9 голосов
/ 10 октября 2011

Я использую JavaScript для отслеживания действий пользователей на моей странице после выгрузки этой самой страницы.Рассмотрим следующий упрощенный dummie-скрипт для имитации того, что я делаю при выгрузке:

$(window).unload(function() {
    $.get("http://www.google.de/images/srpr/logo3w.png");
});

URL-адрес изображения в этом случае служит держателем для данных отслеживания.

Изображение запрашиваетсянекоторые браузеры (например, Firefox 3) и не загружаются в другие (например, Firefox 6), когда закрывает окно браузера .

Возможно, это не так, как это должно быть сделано;в любом случае, я бы хотел удержать его, пока мог бы заявить о том, насколько надежным является событие unload.

Есть ли какие-либо события по этому поводу?

1 Ответ

8 голосов
/ 10 октября 2011

У меня есть некоторый опыт в этом, и я бы порекомендовал немного другой подход, как этот:

$(window).unload(function() {
    new Image().src = "http://www.google.de/images/srpr/logo3w.png?timestamp=" 
           + new Date().getTime();
});

Проблема в том, что если вы делаете AJAX-вызов при выгрузке, вам следует использовать синхронный режим. В обычном асинхронном режиме это может вообще не сработать (например, в Chrome).

Но в этом случае уловка с использованием изображения столь же надежна, потому что общение только одностороннее. Это работает для GET, но если вам нужно что-то POST, то синхронизация - единственный вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...