Buenas.
¿Hay algún modo de evitar que el usuario de una web actualice la pantalla pulsando sobre actualizar o F5?
Gracias.
| ||||
Re: Evitar refresco de pantalla hola, tengo esta funcion, haber si te sirve, nunca he sabido quitar el autopostback if(window.event && window.event.keyCode==116) { alert('Alerta presionaste F5'); window.event.keyCode = 0; return false; } } <body class="bienvenida" onkeydown="dos();">
__________________ Mejoremos nuestro país, ayudemos al planeta... próximamente. |
| |||
Re: Evitar refresco de pantalla Puedes validar cuando el usuario le de a la tecla F5 o que que le al mouse click derecho y luego refresh. yo tengo la siguiente función en una pagina base : #Region "Refresh(F5)" Public ReadOnly Property IsRefresh() As Boolean Get Return _isRefresh End Get End Property Private _refreshState As Boolean Private _isRefresh As Boolean Protected Overrides Sub LoadViewState(ByVal savedState As Object) Dim AllStates As Object() = savedState MyBase.LoadViewState(AllStates(0)) _refreshState = Boolean.Parse(AllStates(1)) _isRefresh = _refreshState = Session("__ISREFRESH") End Sub Protected Overrides Function SaveViewState() As Object Session("__ISREFRESH") = _refreshState Dim AllStates() As Object = New Object(2) {} AllStates(0) = MyBase.SaveViewState AllStates(1) = Not (_refreshState) Return AllStates End Function #End Region Luego en el evento Load de la pagina base colocamos: Me.Page.Response.Cache.SetNoStore() Me.Page.Response.AddHeader("PRAGMA", "NOCACHE") Me.Page.Response.Expires = -1 Me.Page.Response.Cache.SetCacheability(HttpCacheab ility.NoCache) Con eso puedes mandar llamar la propiedad IsRefresh() la cual te regresa un boolean con un true si es un refresh y un false si no lo es. Puedes colocar una validación sobre todo en los eventos que afectan base de datos para que no hagas dos viajes a la misma... Saludos espero te ayude |
| ||||
Re: Evitar refresco de pantalla sabes, voy a probar, pero la voy a traducir a c# para ver como funciona ahi, de todas formas que bueno que ya lograste tu objetivo, saludos...
__________________ Mejoremos nuestro país, ayudemos al planeta... próximamente. |
| |||
Re: Evitar refresco de pantalla Yo utilizo una página base de la cual heredo mis páginas y sobreescribes el Load de las páginas. Así puedo utilizar esta función en todas las páginas que heredan mi página base. Te paso el código en C#...
Código:
#region Refresh(F5) protected override object SaveViewState() { Session["__ISREFRESH"] = _refreshState; object[] allStates = new object[2]; allStates[0] = base.SaveViewState(); allStates[1] = !_refreshState; return allStates; } protected override void LoadViewState(object savedState) { object[] allStates = (object[]) savedState; base.LoadViewState(allStates[0]); _refreshState = (bool) allStates[1]; _isRefresh = _refreshState == (bool) Session["__ISREFRESH"]; } private bool _refreshState; private bool _isRefresh; public bool IsRefresh { get { return _isRefresh; } } #endregion Suerte |