Уведомление сервера (XMLHTTPREQUEST?) На мероприятии OneNload?
-
28-09-2019 - |
Вопрос
Можно ли уведомить сервер (сделать один 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
Событие ... Но он попадет на сервер? Может быть.