Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema en el refresco

Estas en el tema de Problema en el refresco en el foro de Frameworks JS en Foros del Web. Saludos a todos. Veréis, estoy haciendo mi primera aplicación en AJAX y me están surgiendo bastantes problemas que poco a poco (y gracias a vuestra ...
  #1 (permalink)  
Antiguo 27/04/2009, 02:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 9 meses
Puntos: 1
Problema en el refresco

Saludos a todos.

Veréis, estoy haciendo mi primera aplicación en AJAX y me están surgiendo bastantes problemas que poco a poco (y gracias a vuestra ayuda) voy solucionando.

El problema que tengo ahora es que tal y como he planteado la aplicación uso variables de sesión en PHP, con lo que necesitaría que la aplicación no guardase contenido en la caché y al cargar (o al refrescar la misma) eliminase todas las variables de sesión, así como la caché...

¿Sería posible? ¿Habría algún modo? ¿O tendría que plantear las cosas de otra manera?



Muchas gracias a todos por vuestra ayuda y un saludo.
  #2 (permalink)  
Antiguo 27/04/2009, 04:40
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 9 meses
Puntos: 1
Respuesta: Problema en el refresco

Os pongo el código que estoy empleando (sin demasiado éxito) por el momento, a ver si os ilustro mejor la idea que tengo.

La idea es que al pulsar F5 (o refrescar el pc) se me borre la sesión y el contenido de la caché de la página, por lo que comienzo diseñando una función en mi página ajax.js para colocar en el evento onLoad de la página índice en cuestión.

ajax.js
Código javascript:
Ver original
  1. function refreshCache () {
  2.     document.getElementById("myform").reset();
  3.  
  4.     ajax = objetoAjax ();
  5.     ajax.open ("GET", "php/refresh.php", true);
  6.     ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  7.     ajax.send(null);
  8. }

Después, creo refresh.php donde borro la caché (o eso creo) y de paso elimino las variables de sesión

refresh.php
Código PHP:
Ver original
  1. header ("Expires: Thu, 27 Mar 1980 23:59:00 GMT");
  2. header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  3. header ("Cache-Control: no-cache, must-revalidate");
  4. header ("Pragma: no-cache");
  5.  
  6. unset ($_SESSION["c"]);
  7. unset ($_SESSION["arrEnv"]);
  8.  
  9. header ("Location: http://www.oscartejada.com/pruebas/index.php?ref=y");

Y después pongo una instrucción al index, para que no se refresque una y otra vez en bucle:

refresh.php
Código PHP:
Ver original
  1. <?php if (isset ($_GET["ref"]) && $_GET["ref"] == "s"){?>
  2. <body>
  3. <?php }else{?>
  4. <body onload="refreshCache ();">
  5. <?php }?>

El caso es que por el momento, ni me muestra ningún tipo de error ni hace nada remotamente parecido a lo que quiero que haga... ¿Estoy obviando algo o planteándolo mal?

Muchas gracias a todos por vuestra ayuda y un saludo.

Editado -> He añadido la línea document.getElementById("myform").reset(); al archivo ajax.js y me he dado cuenta de que -creo- que lo único que falla es la destrucción de la sesión, dado que al refrescar es lo único que me sigue apareciendo... ¿Alguna sugerencia?

Última edición por Koden; 27/04/2009 a las 04:53 Razón: Añadir más datos sobre el problema
  #3 (permalink)  
Antiguo 28/04/2009, 01:33
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 9 meses
Puntos: 1
Respuesta: Problema en el refresco

Sigo peleándome con el script... ¿Alguien sabría decirme si estoy haciendo algo mal o sabría indicarme documentación sobre el tema?

Gracias y un saludo.
  #4 (permalink)  
Antiguo 28/04/2009, 02:25
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 9 meses
Puntos: 1
Respuesta: Problema en el refresco

Pues al final lo solucioné. No era un error complicado, básicamente mi desesperación en un momento dado, supera mi lógica...

Era tan sencillo como registrar una variable cuando comienzo la sessión, tal que así:

Código PHP:
Ver original
  1. session_register ($_SESSION["identificado"]);
  2. $_SESSION["identificado"] = true;

Y después, indicar al comienzo del index.php las siguientes líneas:

Código PHP:
Ver original
  1.  
  2. if ($_SESSION["identificado"] == true)
  3. {
  4.     session_unset ();
  5.     session_destroy () or die ("Ha ocurrido algún tipo de error");;
  6. }

La verdad, bástante más sencillo de lo que me imaginaba.


¡Un saludo para todos!

PS: Si algún moderador considera que el tema debería estar cerrado, que lo cierre sin problema alguno.
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 13:27.