page net examples example asp asp.net page-lifecycle

asp.net - net - ¿Qué pasa cuando presiono el botón Atrás del navegador?



events asp (4)

Creo que la mejor respuesta es: depende del navegador, especialmente después de una publicación / devolución.

Los navegadores más antiguos solían mostrar un cuadro de diálogo de confirmación en el sentido de que "la página contiene datos POST que se reenviarán", y puede continuar (reenviar) o cancelar. Dado que todo lo que sucede en ASP.NET WebForms es parte del elemento FORM (ViewState, eventos, etc.), esto causaría que todo el ciclo de vida se repita.

Por supuesto, esto no causó un sinfín de problemas con los envíos duplicados, por lo que muchos sitios tuvieron que idear soluciones para el problema de la duplicidad, y en la actualidad, la mayoría de los navegadores solo recuperan la página del caché.

... Eso es a menos que anule los encabezados de control de caché y obligue al navegador a no almacenar la página en caché. Obviamente, en ese caso, no se puede recuperar de la memoria caché, por lo que generalmente terminará siendo reenviado. Pero, de nuevo, depende del navegador, por ejemplo, algunos navegadores no permiten la reenvío a través de SSL, por lo que si ese es el protocolo en uso, el usuario verá un mensaje que dice que la página ha caducado o no puede ser mostrado.

Ahora que lo pienso, probablemente una respuesta aún mejor es: como diseñador de sitios, realmente no puede depender de ningún comportamiento específico del navegador del usuario cuando se hace clic en el botón Atrás. Si una presentación duplicada podría tener efectos secundarios negativos (como cargar una tarjeta de crédito dos veces), entonces debe tomar las medidas adecuadas para evitar que eso suceda. De todos modos, es una buena práctica, ya que es totalmente posible que un usuario simplemente haga doble clic en el botón "enviar" por accidente.

Considere el escenario:

  1. Visité una página de un sitio web construido utilizando ASP.NET. La página es una página aspx simple que contiene los controles del servidor ASP.NET.

  2. Hice clic en un enlace que me lleva a otra página en el mismo sitio web.

  3. Hice clic en el botón ATRÁS del navegador.

PREGUNTA : ¿Qué sucede en términos del ciclo de vida de la página? ¿Ocurren todos los eventos o el navegador solo muestra la versión en caché de la página sin hacer ninguna solicitud?


La página se mostrará desde Caché.


incluso hemos intentado

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

para resolver este tipo de problema


por lo general, todos los eventos deberían ocurrir, pero si tiene un navegador súper, podría mostrar un punto de interrupción en su Carga de página y ver si ocurrirá.