Уведомление сервера (XMLHTTPREQUEST?) На мероприятии OneNload?

StackOverflow https://stackoverflow.com/questions/3482808

Вопрос

Можно ли уведомить сервер (сделать один HTTP-запрос с небольшим количеством данных, ответ неважно), когда клиент покидает страницу?

Я на самом деле использую приложение Comet Python-Tornado Comet с JavaScript постоянно сохраняя подключение запроса к серверу (которое закрывается и снова открывается на событии. Исходя из этого: https://launchpad.net/eftw.).

Я не нашел простого способа отладки этого (в частности с Firebuggug). Это делает это довольно проблематичным.

Ох, и фактический код (так как он уже в любом случае, уже используемый): http://bazaar.launchpad.net/~hoverhell/xftw/trunk/files.

Это было полезно?

Решение

Вы не можете сделать это в надежный Способ, в зависимости от браузера и задержки, ваш XMLHTTPREQUEST, вероятно, будет убит, прежде чем он на самом деле закончится.

Makers Browser хотят (правильно, IMO) сделать следующую страницу как можно быстрее. То onbeforeunload и onunload Мероприятия по очистке предназначены для быстрого распоряжения любых переменных, оставленных вокруг, они не должны ждать ... Так что браузер не. Поскольку сборка мусора в новых браузерах также значительно улучшилось, браузер имеет еще меньше причин ждать этих событий.

Вы можете отправить запрос в window.onbeforeunload Событие ... Но он попадет на сервер? Может быть.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top