Wrox Home  
Search P2P Archive for: Go

  Return to Index  

aspx_espanol thread: Evento Unload2


Message #1 by "Jayson Quintero" <jabord@h...> on Sat, 16 Feb 2002 17:56:41
Hola a todos los desarrolladores de asp.net



 Hace algunos dias hice una pregunta, y ahora la repito a ver si alguien 

puede darme una mano.



 Tengo unos WebForms de mantenimiento, con algunos textbox de entrada de 

datos. cuando el usuario antra a algunas de ellas, la guardo como visitada 

en un menu (esto es como el menu ventana de microsoft). 



 Para esto yo guardo la informacion del webform visitado en un dataset, 

para cuando el usuario desida volver a este webform este la información 

intacta tal cual la dejo.



 Mi pregunta es, que evento se ejecuta al navegar de una pagina a otra, 

pues es el momento exacto para guardar la información. Yo pensaba que es 

el Unload, pero parece que este se ejecuta al principio. Si me equivoco 

podes decirme el comportamiento de los eventos que se ejecutan al cerrar 

una pagina e ir a otra.



 Gracias de antemano.
Message #2 by "Andrew Wrigley" <awrigley@y...> on Sat, 16 Feb 2002 19:16:05
> Hola a todos los desarrolladores de asp.net

> 

>  Hace algunos dias hice una pregunta, y ahora la repito a ver si 

alguien 

> puede darme una mano.

> 

>  Tengo unos WebForms de mantenimiento, con algunos textbox de entrada 

de 

> datos. cuando el usuario antra a algunas de ellas, la guardo como 

visitada 

> en un menu (esto es como el menu ventana de microsoft). 

> 

>  Para esto yo guardo la informacion del webform visitado en un dataset, 

> para cuando el usuario desida volver a este webform este la información 

> intacta tal cual la dejo.

> 

>  Mi pregunta es, que evento se ejecuta al navegar de una pagina a otra, 

> pues es el momento exacto para guardar la información. Yo pensaba que 

es 

> el Unload, pero parece que este se ejecuta al principio. Si me equivoco 

> podes decirme el comportamiento de los eventos que se ejecutan al 

cerrar 

> una pagina e ir a otra.

> 

>  Gracias de antemano.
Message #3 by "Andrew Wrigley" <awrigley@y...> on Sat, 16 Feb 2002 19:28:01

Disculpame el post vacio.



El evento unload se dispara cuando asp.net termina de procesar un page 

object (una pagina) y antes de enviar el html resultante al cliente.  Por 

eso te da la impresion de que el evento se dispara 'al principio'...  



Dicho de otra manera, el evento unload se dispara al final del 

procesamiento que asp.net hace de un request una pagina asp.net.  No 

confundas un unload de asp.net (en el servidor) con un unload de una 

pagina en un browser cliente.



Lo que queres es un evento que se dispara cuando requeris otra pagina de 

tu aplicacion.  Como se refiere a la sesion de tu usuario, debe ser un 

evento de Sesion, que tal vez podes en el global.asax...



O sea, cuando requeris una pagina de tu aplicacion, el servidor se va a 

fijar en los eventos que tenes definidos en el global.asax.  Por alli va 

la cosa.



Me parece que tenes que estudiar un poquito.  Te sugiero que aclares 

conceptos referentes al procesamiento de un request por asp.net, el orden 

y el momento en que se disparan los distintos eventos y conceptos 

referentes a las aplicaciones web.  



Si nadie te contesto es porque en la lista se supone que los usuarios se 

tomaron algun trabajo para entender los conceptos basicos.  Yo te 

contesto esta vez porque he sufrido lo tuyo en carne propia y porque a mi 

me han tenido paciencia.



Suerte y a estudiar un cacho.



Andres Wrigley
Message #4 by "jayson osvaldo" <jabord@h...> on Sat, 16 Feb 2002 15:28:06 -0500

Hola Andrew, Gracias por tu explicación. Veo que hay cosas que tengo que 

aprender, sobre esto. Realmente soy novato, pero espero rapidamente aprender 

mucho más.



Con respecto a los eventos en el global.asax. lo que deseo es colocar el 

codigo en alguno de esos eventos, que guarde la informacion que hay en los 

textbox en un dataset.



Y realmente no veo como?



Si tienes una idea me informas por favor.



Saludos





>El evento unload se dispara cuando asp.net termina de procesar un page

>object (una pagina) y antes de enviar el html resultante al cliente.  Por

>eso te da la impresion de que el evento se dispara 'al principio'...

>

>Dicho de otra manera, el evento unload se dispara al final del

>procesamiento que asp.net hace de un request una pagina asp.net.  No

>confundas un unload de asp.net (en el servidor) con un unload de una

>pagina en un browser cliente.

>

>Lo que queres es un evento que se dispara cuando requeris otra pagina de

>tu aplicacion.  Como se refiere a la sesion de tu usuario, debe ser un

>evento de Sesion, que tal vez podes en el global.asax...

>

>O sea, cuando requeris una pagina de tu aplicacion, el servidor se va a

>fijar en los eventos que tenes definidos en el global.asax.  Por alli va

>la cosa.

>

>Me parece que tenes que estudiar un poquito.  Te sugiero que aclares

>conceptos referentes al procesamiento de un request por asp.net, el orden

>y el momento en que se disparan los distintos eventos y conceptos

>referentes a las aplicaciones web.

>

>Si nadie te contesto es porque en la lista se supone que los usuarios se

>tomaron algun trabajo para entender los conceptos basicos.  Yo te

>contesto esta vez porque he sufrido lo tuyo en carne propia y porque a mi

>me han tenido paciencia.

>

>Suerte y a estudiar un cacho.

>

>Andres Wrigley

>---

>Usted está suscrito a aspx_espanol como:

>jabord@h...

>Para darse de baja, envíe un mensaje en blanco a

>$subst('Email.Unsub')

>




>$subst('Email.Unsub').











VisualStudio.Net lo mejor del Web





_________________________________________________________________

Join the world?s largest e-mail service with MSN Hotmail. 

http://www.hotmail.com



Message #5 by "Andrew Wrigley" <awrigley@y...> on Sun, 17 Feb 2002 10:20:31
Jayson



>  Para esto yo guardo la informacion del webform visitado en un dataset, 

> para cuando el usuario desida volver a este webform este la información 

> intacta tal cual la dejo.



Tenes que usar una variable de sesion para guardar la info que el usuario 

imputa.  No me parece que tiene que ser un dataset (mucha memoria, para 

que matar mosquitos con caniones?) salvo que cada usuario haya modificado 

un db (????).  Mejor un array con el estado de los text box imputados por 

el usuario.



Despues usas el Page_Load event.  O sea, si no es un post back, tu event 

handler se fija en tu variable de sesion, y pone lo que encuentra en los 

respectivos text box o lo que sea.



Para que esto funcione, tenes que manejar la sesion, ya sea con cookies, 

o lo que sea. 



Cualquier otro metodo va a aplicarse a TODOS los usuarios de tu app.  

Creo que no queres esto.



>  Mi pregunta es, que evento se ejecuta al navegar de una pagina a otra, 

> pues es el momento exacto para guardar la información. Yo pensaba que 

es 

> el Unload, pero parece que este se ejecuta al principio. Si me equivoco 

> podes decirme el comportamiento de los eventos que se ejecutan al 

cerrar 

> una pagina e ir a otra.



Aqui radica tu bache conceptual:  El protocolo http es Stateless, o sea, 

un servidor procesa un request, devuelve el html al usuario en el 

response y SE OLVIDA.



El Servidor NO se queda esperando a que el usuario impute algo en su 

browser para disparar algun evento.  Una vez que el servidor despacho el 

response, CIERRA la conexion y se queda esperando otro request para 

procesar.



Esto implica que cuando el usuario decide (se escribe con c, desidia con 

s es flojera, falta de ganas) ir a otra pagina NO hay evento alguno en el 

servidor respecto a la pagina original, sino tan solo los eventos page 

init y page load de la nueva pagina requerida.  De alli que al volver a 

la pagina original, el servidor no tiene manera de saber que imputo el 

usuario, si no lo tiene guardado en alguna variable especifica al 

usuario, o sea, una variable de sesion.



Lo que te confunde, es que con el post back asp.net 'aparenta' acordarse 

de lo que el usuario imputo, pero esto es una mentira, ya que lo que el 

servidor hace es empaquetar la info mandada en el request y devolverlo al 

usuario encriptado en el hidden control que utiliza el post back.



Entonces, tu pregunta se reduce a:  



Como hacer para meter la imputacion del usuario en tus variables de 

sesion?



Si el request es un postback, es facil, porque en efecto la pagina 

destino es la pagina origen.  Dentro del page load, pones codigo que 

carga los datos en la variable de sesion que corre cuando el request es 

un postback.



Este metodo se te complica cuando la pagina destino es una pagina 

distinta, y entonces es mejor un metodo generalizado para ambos casos.  

Se me ocurre a la ligera que lo mejor es escribir un metodo que se llama 

desde cualquier hyperlink control de tu pagina problematica que procesa 

esa info y carga las variables de sesion.  El metodo se llamaria desde 

los event handler On Click de tus controles asp.net hyperlink.



Si queres que el usuario vuelva dos dias despues y se encuentra con la 

misma info, entonces cargas tus variables de sesion en un db pero SOLO 

cuando la sesion termina.  O sea, procesas el paso de las variables de 

sesion a la db en el evento Session On End en el global.asax.





>  Gracias de antemano.



De nada, pero si lees ingles te recomiendo Beginning ASP.NET using C# (o 

VB.NET, segun tu preferencia).



Realmente no tenes claro los conceptos basicos de:



1.  El procesamiento de paginas por ASP.NET



2.  el orden de disparo de los eventos



3.  que el evento UnLoad se utiliza para la limpieza de recursos 

utilizado en el procesameinto de la pagina (p ej, conexiones a bases de 

datos, etc) y que este evento se dispara ANTES y siempre ANTES de que el 

usuario reciba el Html enviado por el servidor tras cada request.



4.  El concepto de sesion y las tecnicas de sesion management.



5.  Postback.



6.  El concepto de application



7.  Como y cuando usar lo de arriba, en especial el global.asax.



8.  No tenes claro lo que no tenes claro.



9.  if(!englishSpoken)



    {

           Learn english;



           Read lots of books on asp.net;



    }



Ya que estas aprendiendo, te recomiendo C# antes que VB.



Suerte Andres

Message #6 by "Victor Garcia Aprea" <vga@o...> on Mon, 18 Feb 2002 00:52:46 -0300



> Lo que te confunde, es que con el post back asp.net 'aparenta' acordarse

> de lo que el usuario imputo, pero esto es una mentira, ya que lo que el

> servidor hace es empaquetar la info mandada en el request y devolverlo al

> usuario encriptado en el hidden control que utiliza el post back.



Ojo, el ViewState -por default- no esta encriptado, sino codificado con un

simple UUEncode64.



-Victor.



Message #7 by "Andrew Wrigley" <awrigley@y...> on Mon, 18 Feb 2002 09:46:04
Gracias Victor la correccion y la precision de tus posts.  De paso, dije 

muchas pavadas arriba o andamos por la buena senda?



Andres Wrigley

  Return to Index