Что происходит, когда мы обновляем веб-страницу?

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

  •  06-07-2019
  •  | 
  •  

Вопрос

Я надеялся, что кто-нибудь сможет ответить на фундаментальный вопрос, который у меня есть относительно обновления веб-страницы.

У меня есть веб-форма dotnet, где пользователь заполняет некоторые данные и нажимает кнопку отправить.Код веб-страницы содержит около 20 функций для выполнения.

Теперь предположим, что когда пользователь нажимает кнопку отправки, веб-страница выполняет 5-ю функцию, а тем временем пользователь обновляет свой браузер;

Что произойдет с уже обработанной страницей?Будет ли страница немедленно закрыта?или ему будет разрешено запускаться до тех пор, пока он не выполнит 20-ю функцию?или запущенная страница будет уничтожена, а новая страница создана и отправлена клиенту?

Спасибо за ваши ответы.

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

Решение

Как только запрос из браузера поступает на сервер, страница обрабатывается.Даже если пользователь отменяет или останавливает запрос, сервер продолжает обрабатывать запрос.Если пользователь перезагружает / обновляет страницу, это другой запрос, который будет выполняться параллельно с первым запросом.

Даже в случае PHP сервер не проверяет активно, работает ли пользователь прервал связь.Сервер знает, что операция была прервана, только когда пытается вернуть результаты запроса.

Интернет - это отключенная среда.Сервер ничего не знает о браузере.Единственное, что знает сервер, - это то, что был сделан запрос, и он должен выполнить его.

Другие советы

Когда страница обновляется в браузере, браузер запрашивает на сервере свежую копию страницы и ее компонентов (CSS, JS и так далее)...если не кэширован).

Если на странице был вызов POST, браузер опубликует данные снова.

Страница завершена к загрузке:

После полной загрузки выполнение на стороне сервера должно быть завершено (если только вы не запустите дополнительные процессы или фоновый код, который больше не будет отправлять данные клиенту).

Страница загружается на полпути:

Подключение к текущей странице будет немедленно отключено - если страница все еще загружается.От сервера зависит, будет ли страница продолжать работать или завершится.Например, в PHP мы можем ignore_user_abort() продолжать выполнение скрипта, даже если страница была прервана на полпути к загрузке.

Если ваш сервер - ASP, и вы нажимаете на кнопку ASP, действие (метод) кнопки будет полностью выполнено на стороне сервера, даже если пользователь обновится на полпути.Вот как делается ASP.NET framework.

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

Надеюсь, это поможет.

РЕ

Выполнение кода будет продолжаться до конца.

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

Другими словами (в вашем конкретном случае), отслеживание всех функций будет продолжаться до тех пор, пока форма не будет отправлена.

С другой стороны, если вы нажмете кнопку "перезагрузить", выполнение завершится прекращено.

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

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