Если запрос GET выполняется следующим образом

$(window).bind('beforeunload', function() {
    // GET request
});

И страница закрывается до завершения запроса GET ,

будет ли целевой сервер по-прежнему обрабатывать запрос ? Или как-нибудь исчезнет?


Я хочу отправить серверу данные о срабатывании beforeunload, но без кражи бесполезных мс у пользователя.

Было бы очень полезно, если бы кто-нибудь мог мне помочь.

6
RadiantHex 23 Июл 2010 в 22:38

2 ответа

Лучший ответ

Если это асинхронный запрос, сервер может его обработать (если он получит запрос), но я не знаю, можете ли вы гарантировать, что запрос будет выполнен до того, как страница будет выгружена, или если он будет обработан - это может зависеть на реальном веб-сервере (у кого-то может быть дополнительная информация). Если вы сделаете синхронный запрос, страница будет ждать, пока запрос не пройдет, и получит ответ (так что в этом случае обработка гарантирована). Однако это означает, что ваш браузер будет заблокирован до тех пор, пока этот запрос не будет завершен, что может быть нежелательно.

1
Vivin Paliath 23 Июл 2010 в 18:44

В большинстве случаев да, но это зависит от сервера веб-приложений. Некоторые могут обнаружить отключение и прекратить выполнение запроса.

1
Joe Martinez 23 Июл 2010 в 18:44