¿Cómo puedo averiguar si el usuario presionó F5 para actualizar mi página? (Algo así como cómo se implementó SO. Si actualiza su página, el contador de preguntas no aumenta). He probado muchos fragmentos de código mencionados en una docena de tutoriales, pero ninguno funcionó correctamente.Detectar actualización del navegador
Para ser más claros, supongamos que tengo un formulario web vacío y me gustaría detectar si el usuario ha presionado F5 en el lado del cliente (lo que provoca una actualización no enviada) o no.
Puedo usar variables de sesión, pero si el usuario navega a otra página de mi sitio, y luego regresa, me gustaría considerarlo como una nueva visita, no como una actualización. así que esta no es una variable de ámbito de sesión.
Gracias.
Actualización: La única solución que pude encontrar fue a heredar mis páginas de una página base, reemplazar el método de carga, como a continuación:
public class PageBase : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Session["LastViewedPage"] = Request.RawUrl;
}
}
y en cada página si estaba interesado en saber si esta es una actualización:
if (this.Session["LastViewedPage"].ToString() == Request.RawUrl)
{
// This is a refresh!
}
dices 'Puedo usar variables de sesión', ¿por qué no solo almacenar la última página visitada? – tomfumb
Beacuse Tengo que almacenarlo en cada página. En realidad, tal vez no sea una mala idea usar una página base ... – Kamyar