Chalalo Land

Tecnologías ASP.NET y un poco Más

Contacto


 Si quierer cooperar, yo feliz, muy agradecido :)

De donde me Visitan?

Locations of visitors to this page

Generic Content

Si te gustaron los articulos, y te animas te estaría muy agradecido!


Recent Posts

Tags

Community

Blogs de MVP

Amigos Geeks

Blogs Imperdibles

GODS

Archives

Email Notifications

[Tips]Problema de Cache con IE8 y jQuery

Hola, quiero compartir este pequeño tip, ya que en algún momento te puede servir (por lo menos a mi me sirvió de lujo!").

Resulta que Internet Explorer 8, dentro de todas las optimizaciones para mostrar rápidamente las páginas, tiene un sistema de cache bastante agresivo (por decirlo de alguna manera), entonces, peticiones de Ajax con JQuery como:

$.ajax({
            url:"engine/usuarios_funciones.asp",
            type:"POST",
            data: "nombre=" + $("#TxNombre").val,
            async:true,
            success:function(){
                //Alguna Acción
            },
            error:function(){
                alert("Error al intentar Ingresar");
            }
                
    });

funcionan muy bien en IE9, Chrome, Firefox, Safari, Opera, en IE9 en modo compatibilidad de IE8 , también, pero en IE8, nada, ni siquiera envía un error JavaScript, revisando con la consola de IE, y haciendo depuración de código JS, aparentemente nada extraño sucede, sin embargo la petición Ajax, no funcionaba. Luego en la barra seleccione la opción “Siempre actualizar desde el servidor”

image

Y si, funcionó!, entonces modifiqué la llamada:

$.ajax({
            url:"engine/usuarios_funciones.asp",
            type:"POST",
            data: "nombre=" + $("#TxNombre").val,
            async:true,
            cache:false,
            success:function(){
                //Alguna Acción
            },
            error:function(){
                alert("Error al intentar Ingresar");
            }
                
    });

Colocando la opción cache:false, que nos debería permitir el mismo resultado que al seleccionar “siempre actualizar desde el servidor”. Pero al probarlo, de nuevo el mismo problema: no funciona.

La solución, es la configuración global de las peticiones Ajax mediante jQuery, es bastante sencilla, y la puedes dejar al principio de tu código BLOCKED SCRIPT

$.ajaxSetup({ cache: false });

Y Listo!, funcionó!, lo extraño en un principio, es que solo algunas llamadas tenían este problema, otras funcionaban perfectamente, me imagino que el engine de cache de IE8 estaba metiendo la cola, jejejej.

Espero que te sirva Sonrisa
Saludos,
Gonzalo

PD: Estoy posteando menos este mes por que estoy a mega ultra súper a full, casi no duermo, pero me tomo el tiempito de repente para compartir algo, del próximo mes, creo que voy a tener un poco más de tiempo Sonrisa

Posted: 19/1/2011 12:43 por Gonzalo Perez | con 3 comment(s)
Archivado en:
Comparte este post:

Comentarios

Patricio ha opinado:

Excelente tip. Se agradece.

# January 21, 2011 9:17 PM

Jean-Luc ha opinado:

Suena experiencia de 1a mano :-)

# February 12, 2011 4:20 AM

Luis Cal ha opinado:

Excelente! gracias!

# May 2, 2011 4:29 PM