Ajax y la caché de IE

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Ajax y la caché de IE

Mensaje por DomK » 08 Jun 2007, 18:50

Hola foro,

Hace tiempo publiqué un mapa aquí http://forum.velneo.com/es/download.php?id=840
que sincroniza dos combos web mediante ajax.

Como trabajo con Firefox, lo vi funcionar, pero cuál es mi sorpresa cuando en IE deja de funcionar!!!

He buscado en google y he visto el problema solucionado en php, asp, etc, y la solución pasa por devolver en la cabecera de la respuesta los pragma no-caché y compañía para eliminar la caché en IE. Esto de modificar las cabeceras de la respuesta en Velneo pasa por una costosa inversión de tiempo al tener que hacerlo mediante protocolo tcp/ip de forma similar a como está resuelto el tema de css para xhtml estricto.

He intentado mandar en la petición ajax un parámetro aleatorio para evitar la caché pero tampoco me ha funcionado.

Alguno de vosotros tiene una solución para que el ajax funcione en IE desde Velneo?

Un saludo,
DomK
"La simplicidad es la sofisticación definitiva"

Avatar de Usuario
DESARROLLADOR
vLeader
vLeader
Mensajes: 1504
Registrado: 17 Ago 2006, 17:49
Ubicación: Tamaulipas México
Contactar:

Mensaje por DESARROLLADOR » 09 Jun 2007, 01:38

Espero encuentres respuesta, y no es por desanimarte, pero me parece que la persona mas especializada en esos temas, ERES TU. bueno al menos creo que te has caracterizado por eso. por eso digo que ojala encuentres a alguien que sepa mas que tu de VV y esas hondas de AJAX.... Suerte y se que la respuesta la encontraras pronto saludos....

term181170
vMate
vMate
Mensajes: 36
Registrado: 05 Oct 2005, 11:29

Mensaje por term181170 » 10 Jun 2007, 20:24

Debería funcionarte con esta solución:
http://www.faq-mac.com/bitacoras/mmm/?p=160

Suerte

Jap
vMate
vMate
Mensajes: 37
Registrado: 22 Sep 2005, 08:19
Ubicación: Cornella - Barcelona - España (41.35890, 2.07416)

Mensaje por Jap » 11 Jun 2007, 08:25

Hola,

Te pego la función modificada a ver si te sirve.

Código: Seleccionar todo

function PagRemota(url, id_contenedor)
{
    var pagina_requerida = false;
    var url_nocache = url + "&w_nocache=" + new Date().getTime();
	
    if (window.XMLHttpRequest)
    {
        // Si es Mozilla, Safari etc
        pagina_requerida = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        // pero si es IE
        try 
        {
            pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versión antigua
            try
            {
                pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    } 
    else
    return false;
    pagina_requerida.onreadystatechange = function ()
    {
        // función de respuesta
        cargarpagina (pagina_requerida, id_contenedor);
    }
    pagina_requerida.open ('GET', url_nocache, true); // asignamos los métodos open y send
    pagina_requerida.send (null);
}
Un saludo,
Joaquín.

Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Mensaje por DomK » 11 Jun 2007, 09:47

Hola a todos,

Muchas gracias por las respuestas.

Gracias term181170. Eso fue lo primero que intenté pero no me funciona.

Muchas gracias jap. He probado lo tuyo pero tampoco me funciona.

Aunque compruebo que la petición llega al servidor con el aleatorio, IE sigue sin enterarse de que la página ha cambiado.

Sigo investigando. Voy a probar devolviendo el aleatorio a la página tras procesar el ajax, a ver qué pasa.

Un saludo,
DomK
"La simplicidad es la sofisticación definitiva"

Jap
vMate
vMate
Mensajes: 37
Registrado: 22 Sep 2005, 08:19
Ubicación: Cornella - Barcelona - España (41.35890, 2.07416)

Mensaje por Jap » 11 Jun 2007, 10:29

Hola,

Si la url que estas pasando a la función usa variables asegúrate que están creadas en el mapa y están marcadas como accesible web, si no es así la llamada falla y no se muestra nada, por lo tanto:

Has creado en el mapa la variable w_nocache como accesible web.

Comentarte que tuve el mismo problema con el IE y la modificación realizada a la función me solvento los problemas con el cache y esta funcionando correctamente.

Un saludo,
Joaquín.

Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Mensaje por DomK » 11 Jun 2007, 11:10

Hola jap,

Estoy pasando variables a la función y están declaradas accesible web.

El mensaje que me ha puesto en el servidor muestra el valor de la variable w_nocache recibida y es correcto, cambia para cada petición, pero IE no lanza ni la petición. :cry: :cry: :cry:

La llamada a la función javascript la tengo en el onclick de un select, y he probado a cambiar por onblur, onchange, pero ni por esas.

Debe ser la chorrada más grande del mundo pero sigo sin verlo.

Sigo investigando.

Un saludo,
DomK
"La simplicidad es la sofisticación definitiva"

Jap
vMate
vMate
Mensajes: 37
Registrado: 22 Sep 2005, 08:19
Ubicación: Cornella - Barcelona - España (41.35890, 2.07416)

Mensaje por Jap » 11 Jun 2007, 14:36

Hola DomK,

No se si sera tu caso, pero por lo que he podido probar el IE no dispara los eventos “onClick, onChange, etc.” de las etiquetas <option>.

Prueba a poner la llamada en la etiqueta:

<select onChange="javascript:PagRemota('url', 'Capa');">

Un saludo,
Joaquín.

Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Mensaje por DomK » 11 Jun 2007, 15:10

Bueno Joaquín,

Muchísimas gracias. ESO ES!!!!

IE tiene un bug y no dispara esos eventos en una etiqueta option!!!!!

He probado en el select y así si funciona.

Ahora el problema lo tengo en saber qué option del select han seleccionado para pasarla al ajax del servidor, pero esa es otra historia.

Muchas gracias de verdad.

Ya tenemos otro bug/hack de IE para la bDc del famoso "navegador".

Un saludo,
DomK
"La simplicidad es la sofisticación definitiva"

Avatar de Usuario
DomK
vLeader
vLeader
Mensajes: 1901
Registrado: 04 Oct 2005, 14:50
Ubicación: Valencia - Valencia - España (39.4598,-0.4127)
Contactar:

Mensaje por DomK » 11 Jun 2007, 15:49

Vale, la option que han seleccionado en el select es this.value y todo a funcionar en Firefox y en el otro navegador también.

Muchísimas gracias a todos!!!! :lol: :lol: :wink:

Un saludo,
DomK
"La simplicidad es la sofisticación definitiva"

Responder