Retroceder   Foros del Web > Programación para sitios web > .NET > web forms

Respuesta
 
Herramientas Desplegado
Antiguo 03-ene-2007, 06:54   #1 (permalink)
peloteitor ha deshabilitado el karma
 
Avatar de peloteitor
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona (España)
Mensajes: 841
Enviar un mensaje por MSN a peloteitor
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.
__________________
El sexo sin amor es una experiencia vacía. Pero como experiencia vacía es una de las mejores.

Woody Allen
peloteitor está desconectado   Responder Citando
Antiguo 04-ene-2007, 16:09   #2 (permalink)
erick_arcini tiene algunos puntos positivos de karma
 
Avatar de erick_arcini
 
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco, Estado de México
Mensajes: 1.355
Enviar un mensaje por MSN a erick_arcini Enviar un mensaje por Skype™ a erick_arcini
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();">
__________________
En periodo de prueba -> http://previo.latinid.com.mx
erick_arcini está desconectado   Responder Citando
Antiguo 11-ene-2007, 10:02   #3 (permalink)
juantiva ha deshabilitado el karma
 
Fecha de Ingreso: junio-2006
Mensajes: 89
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
juantiva está desconectado   Responder Citando
Antiguo 12-ene-2007, 08:34   #4 (permalink)
erick_arcini tiene algunos puntos positivos de karma
 
Avatar de erick_arcini
 
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco, Estado de México
Mensajes: 1.355
Enviar un mensaje por MSN a erick_arcini Enviar un mensaje por Skype™ a erick_arcini
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...
__________________
En periodo de prueba -> http://previo.latinid.com.mx
erick_arcini está desconectado   Responder Citando
Antiguo 06-mar-2007, 14:07   #5 (permalink)
juantiva ha deshabilitado el karma
 
Fecha de Ingreso: junio-2006
Mensajes: 89
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
juantiva está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 1,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 19:18.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93