Что происходит, когда пользователь нажимает остановку в своем веб-браузере? - PullRequest
17 голосов
/ 30 марта 2010

Если вызывается страница, требующая большой обработки, и пользователь нажимает кнопку stop до конца, неужели браузер просто останавливает запрос на стороне клиента?

Или сообщение «Стоп» отправлено на сервер, т. Е. Обработка отменена?

Ответы [ 4 ]

10 голосов
/ 30 марта 2010

При этом сообщение на сервер не отправляется. Когда пользователь нажимает кнопку остановки, браузер просто останавливает рендеринг страницы и игнорирует любой дальнейший ответ = с сервера.

Если запрос уже отправлен на сервер, сервер обычно продолжает его выполнение. Однако, в зависимости от реализации сервера, может обнаружить сброшенное соединение. Это означает, что вы не можете рассчитывать на то, что это будет продолжаться в каждом случае.

4 голосов
/ 30 марта 2010

На самом деле он отправляет «стоп-сообщение», закрывая соединение. Это верно только в том случае, если он все еще ожидает вывода из основного запроса (не после завершения загрузки контента и загрузки изображений и прочего). Таким образом, вы можете определить, нажимает ли пользователь кнопку остановки ИЛИ возникают ли какие-либо проблемы с соединением, когда вы получаете сообщение о закрытии соединения.

Вот некоторая информация о руководстве пользователя PHP: http://php.net/manual/en/features.connection-handling.php

На заметку - это всегда зависит от реализации браузера, и нет определенного способа убедиться, нажал ли пользователь кнопку «Стоп» или просто оборвалось соединение.

3 голосов
/ 30 марта 2010

Нет сообщений / запросов "STOP", определенных в HTTP, поскольку HTTP не имеет состояния и остановка запроса потребует от вас знать его ID. Вполне естественно, что как только HTTP-запрос попадает на сервер, он не может быть остановлен внешним миром.

2 голосов
/ 30 марта 2010

Сервер все еще будет обрабатывать запрос. Если вы используете Visual Studio, вы можете подключиться к рабочим процессам IIS, чтобы убедиться, что это так. Отладка> Присоединить к процессу

...