Что происходит, когда я нажимаю Кнопку "Назад" браузера?

Рассмотрите сценарий:

  1. Я посетил страницу веб-сайта, созданного с помощью ASP.NET. Страница является простой aspx страницей, содержащей управление сервером ASP.NET.

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

  3. Я нажал Кнопку "Назад" браузера.

ВОПРОС: Что происходит с точки зрения жизненного цикла страницы? Все события имеют место, или браузер просто отображает кэшированную версию страницы, не выполняя запросов?

17
задан Manish 18 June 2010 в 10:27
поделиться

4 ответа

Я думаю, что лучший ответ: это зависит от браузера, особенно после сообщения / обратной связи.

Старые браузеры, используемые для всплывающей окна подтверждения диалогового окна к эффекту «страницы, содержит данные по сообщениям, которые будут повторно повторно», и вы сможете продолжить (повторно повторно) или отменить. Поскольку все, что происходит в ASP.NET WebForms, является частью элемента элемента (ViewState, события и т. Д.), Это приведет к повторителю весь жизненный цикл.

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

... Это , если , если Вы не переопределите заголовки Cache Control и заставляйте браузер не хранить страницу в кэше. Очевидно, в этом случае он не может быть получен из кэша, поэтому он обычно в конечном итоге будет повторно. Но, опять же, это зависит от браузера - например, некоторые браузеры не позволят повторной повторной передаче через SSL, поэтому, если это используется, используемый протокол, то пользователь просто увидит сообщение о том, что страница истекает / не может быть показано.

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

16
ответ дан 30 November 2019 в 14:06
поделиться

Мы даже попробовали

Response.ExpiresAbsolute = DateTime.Parse("1/1/1980");
Response.AddHeader("cache-control", "no-store, must-revalidate, private");
Response.AddHeader("Pragma", "no-cache");

, чтобы решить эту проблему

1
ответ дан 30 November 2019 в 14:06
поделиться

Страница будет отображаться из кэша.

0
ответ дан 30 November 2019 в 14:06
поделиться

Обычно все события должны произойти, но если у вас есть Uber Browser, чем может произойти, чтобы отобразить кэшированную страницу Вы можете просто положить точку останова на свою страницу нагрузки и посмотрите, будет ли это произойти

0
ответ дан 30 November 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: