Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASPX (.net) (http://www.forosdelweb.com/f78/)
-   -   Evitar refresco de pantalla (http://www.forosdelweb.com/f78/evitar-refresco-pantalla-453779/)

peloteitor 03/01/2007 07:54

Evitar refresco de pantalla
 
Buenas.

¿Hay algún modo de evitar que el usuario de una web actualice la pantalla pulsando sobre actualizar o F5?

Gracias.

erick_arcini 04/01/2007 17:09

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();">

juantiva 11/01/2007 11:02

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

erick_arcini 12/01/2007 09:34

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...

juantiva 06/03/2007 15:07

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


La zona horaria es GMT -6. Ahora son las 02:19.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.