Foros del Web » Programando para Internet » Javascript »

problemas con reload

Estas en el tema de problemas con reload en el foro de Javascript en Foros del Web. Hola amigos: Este es el lugar que me dio ayuda en mis comienzos de la programación y siempre es bueno volver, ya que siempre he ...
  #1 (permalink)  
Antiguo 29/05/2004, 09:11
 
Fecha de Ingreso: febrero-2001
Ubicación: Capital Federal
Mensajes: 93
Antigüedad: 23 años, 3 meses
Puntos: 0
problemas con reload

Hola amigos:

Este es el lugar que me dio ayuda en mis comienzos de la programación y siempre es bueno volver, ya que siempre he tenido amables respuestas.

El asunto es así.

Luego de procesar un formulario, me redirijo a una página jsp y dentro de ese página ejecuto un pop up de una nueva ventana:

newwindow = window.open('../jsp/pagoticket.jsp','acusePago','menubar = yes,top=10,height=610,width=420,scrollbars=1')
newwindow.focus();

En síntesis me quedan dos ventanas, una la actual y también la ventana abierta, del pop up.

Ocurre que en la aplicación, un usuario puede darle atrás al navegador y querer ejecutar la misma operación previa advertencia.

En este caso, la ventana del pop up sigue abierta, y se encuentra minimizada en la barra.

Cuando el cliente ejecuta nuevamente el proceso (previa advertencia, pero por regla de negocio puede hacerlo), nuevamente se procesa el formulario.
La página a la que arriba, vuelve a abrir el pop up. Esta ventana ya estaba minimizada y con la línea :

newwindow.focus();

se le muestra al usuario.

Bueno donde está el problema, se preguntarán.
Esta ventana no se refresca, muestra el resultado anteriormente procesado.

Bueno he intentado con varias cosas, entre ellas:

<meta http-equiv="pragma" content="no-cache">

y también de esta manera

newwindow = window.open('../jsp/pagoticket.jsp','acusePago','menubar = yes,top=10,height=610,width=420,scrollbars=1')
newwindow.location.reload();
newwindow.focus();

pero no ha resultado.

Se me ocurrió que al ejecutarse el evento OnLoad del body podría ejecutar un script, que verifique si la ventana actual tiene una ventana child ( o hija) y pueda refrescarla y luego si hacer el pop up.

No se si funcionará, pero por otro lado, no sé si puedo preguntar si una ventana padre, tiene una ventana hija. Y en el caso de que sea true, ejecutar el refresh.

Bueno amigos espero su ayuda, desde ya muchas gracias a todos.

Última edición por aleman; 29/05/2004 a las 09:19
  #2 (permalink)  
Antiguo 29/05/2004, 09:31
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola aleman:

No sé muy bien si te podré ayudar, porque no entendí bien la pregunta (bueno, creo que la has expuesto bastante bien, pero me extraña que no te funcione lo que has probado)...

Resumiendo, creo que lo que quieres es hacer un "reset" al formulario... ...
... en tal caso creo que sería conveniente llamar al método reset.

newwindow.document.forms[elFormulario].reset();
newwindow.focus();

Espero que te sirva.

Saludos
  #3 (permalink)  
Antiguo 29/05/2004, 09:59
 
Fecha de Ingreso: febrero-2001
Ubicación: Capital Federal
Mensajes: 93
Antigüedad: 23 años, 3 meses
Puntos: 0
Trataré de ser más claro, porque no me he explicado bien.

El usuario viene llenando un formulario de tipo wizard, a través de la aplicación.
Pues bien , en la ultima página se le muetra el resultado y se le pide que acepte si los datos son los correctos.

Este formulario tiene como action ="pagofinal.jsp".

El usuario acepta, el browser lo redirigie a pagofinal.jsp y dentro de pagofinal.jsp, llamo a un script que abre un pop up, para mostrar un ticket de pago, esta ventana se llama pagoticket.jsp

Hasta aquí todo bien.

Pues bien, el usuario decide procesar un nuevo ticket o el mismo ticket
a otra entidad de pago.
Si el usuario no cerro la ventana que contiene el ticket de pago, en este caso pogoticket.jsp, esta ventana queda en la barra minimizada.

Cuando el usuario decide procesar un nuevo ticket, completa el wizard y acepta sus datos y llega nuevamente a pagofinal.jsp.

Un detalle aclarativo e importante, pagofinal.jsp no abre una nueva ventana, sino que abre la ya existente debido a que la ventanta tiene un target="pagoacuse".
De lo contrario por cada ticket de pago que haga, habriría n ventanas de acuses.

Surge un problema, cuando esta procesando el segundo pago, la ventana que
muetra el acuse de recibo del ticket o sea pagoticket.jsp, no toma los datos del nuevo ticket, sino que muetra los datos del ticket anterior.

Está claro que esta cacheando la página, ya que si le doy F5 o acutalizar, esta ventana muestra los datos correctos del ticket procesado.

Pues bien, como te comenté no me ha funcionado el tema del META TAG, para que esa página no quede en el cache.

Básicamente, el problema es este.

Lo que me preguntaba era si yo podría ejecutar un evento , en pagofinal.jsp, que preguntara si tiene una ventana hija abierta asociada, en este csaso pagoticket.jsp con un target="acusepago" y de acuerdo a
eso recargarla, antes de hacer el pop up.

Espero haber sido más claro, hasta hace un rato estuve leyendo un intercambio muy rico que tuviste con otro participante del foro y veo que tienes buenos conocimientos, desde ya agradezco
tu respuesta y el tiempo que te tomas en ayudarme. Un saludo.
  #4 (permalink)  
Antiguo 29/05/2004, 10:08
 
Fecha de Ingreso: febrero-2001
Ubicación: Capital Federal
Mensajes: 93
Antigüedad: 23 años, 3 meses
Puntos: 0
voy a probar con esto

Hola amigo justamente un mensaje más atrás le pasa algo muy parecido, voy a probarlo y veo

<META HTTP-EQUIV="Cache-Control" CONTENT ="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT">

Un saludo
  #5 (permalink)  
Antiguo 29/05/2004, 10:08
 
Fecha de Ingreso: febrero-2001
Ubicación: Capital Federal
Mensajes: 93
Antigüedad: 23 años, 3 meses
Puntos: 0
aclaracion

Aclaro que solo había probado un tag, voy a hacerlo con todos
  #6 (permalink)  
Antiguo 29/05/2004, 10:33
 
Fecha de Ingreso: febrero-2001
Ubicación: Capital Federal
Mensajes: 93
Antigüedad: 23 años, 3 meses
Puntos: 0
extraño

Bien he probado con todos los meta tags, y la primera vez la ventana cambia pero la seunda vez, vuelve a tomar la cacheada, alguna sugerencia?
  #7 (permalink)  
Antiguo 29/05/2004, 10:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola otra vez:

No te fies mucho de respuestas que haya dado en otros temas, ya que me equivoco mucho (mucho más de lo que quiero), pero creo que entre todos mis errores se pueden sacar cosas de provecho. En una asignatura de mi carrera (Informática de Gestión) se proponía "tormentas de ideas", y consiste en "soltar ideas por descabelladas que pudieran parecer"... (con un objetivo ) aparte de ser divertido, es comunicativo y sobre todo "muy eficaz", ya que una idea descabellada e inútil matizada con otra eficaz e intrascendente pueden conseguir el "mejor resultado"...

... por esa razón me "meto" en discusiones que se le puedan sacar algo más de provecho, y en ocasiones acierto...

Bueno, no te aburriré más con mis divagaciones...

Siguiendo con la técnica de las "tormentas de ideas" puedes abrir una página que no sea la del formulario para hecer un "reset" y al cabo de un tiempo (que no se note) volver a abrir la página en cuestión... aunque no es una respuesta de las que me guste dar...

Otra alternativa sería llamar al popup desde una variable inicializada a false y usar el evento onunload del popup para volverla a false (mientras estuviese abierta no sería false)

var x = false;
...

x = window.open(... )

... y en el popup...

<body onunload="opener.x = false" ... >

Si se me ocurre otra cosa te aviso... por cierto, este último sistema recuerdo haberlo hecho y creo que va bien.

Saludos
  #8 (permalink)  
Antiguo 29/05/2004, 11:12
 
Fecha de Ingreso: febrero-2001
Ubicación: Capital Federal
Mensajes: 93
Antigüedad: 23 años, 3 meses
Puntos: 0
Bueno lo que tu dices, alguna vez me lo explicaron, para el desarrollo
de un proyecto , aunque no tuve la suerte de practicarlo como tu y en inglés se llama

BRAINSTORMING (LLUVIA DE IDEAS). ...
La lluvias de ideas (Brainstorming), es una técnica de grupo para generar
ideas originales en un ambiente relajado. ...
Aqui hay un link

http://www.gestiopolis.com/canales/e...instorming.htm

Te cuento que lo he resolvido de una manera que ya había sugerido solo que no estaba haciendolo en el lugar correcto

La solución es hacer un reload luego de generar el pop-up de esta manera

acuseWindow = window.open('../jsp/pagoticket.jsp','acusePago','menubar = yes,top=10,height=610,width=420,scrollbars=1')
acuseWindow.location.reload();
acuseWindow.focus();

y funciona.
Desde ya agradezco tus respuestas y sugerencias, espero poder ayudarte alguna vez, un saludo.
  #9 (permalink)  
Antiguo 29/05/2004, 12:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola otra vez:

Interesante enlace... pero en mi "facu" es tormenta... de todos modos no tiene ninguna importancia que tenga un nombre u otro... además ya aprobé esa asignatura ...

Bueno, fuera de broma me alegro de que hayas solucionado tu problema. ¡Ya te decía antes que me extrañaba que no te sirviera!

No es necesario que me ayudes a mí, porque esto es como pasar el testigo... a mi me ayudaron mucho, ahora ayudo yo, y... a los que he ayudado se dedicarán a ayudar a más gente... y la rueda seguirá rodando...

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:24.