AJAX y el horrible problema de IE6 con el cache

31 01 2010

Llevo días trabajando en una página que refresca cada cierto tiempo la data interna de la misma a través de la descarga de un JSON. Como siempre, todo funcionaba perfecto en todos los exploradores menos en IE6, en el cual la data no refrescaba; la única manera de obtener que se refrescara la data nueva era borrando los archivos temporales, incluyendo las archivos para navegación offline. Después de probar todos los tags meta con todas sus posibles combinaciones y no poder resolver el problema: encontré en un foro la solución en una sola línea “request.setRequestHeader(‘If-Modified-Since’, ‘Thu, 1 Jan 1970 00:00:00 GMT’)“. Este comando logra que la data descargada no se almacene en cache y se pueda refrescar la página.

Al final, mi código quedó de la siguiente manera:

function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request.responseText, request.status);
}
};
request.open('GET', url, true);
request.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT");
request.send(null);
}

Anuncios

Acciones

Information

2 responses

9 02 2010
ozzysong

Lo mejor es dejar de dar soporte a IE6 de una vez como está empezando a hacer Google por que al final trabajas dos veces para lo mismo y los usuarios y clientes tendrán que comprender que no podemos seguir usando un navegador con 9 años.

9 02 2010
moroco

Creeme, también quisiera dejar de dar soporte ahora mismo a IE6, sin embargo, mucha gente en mi país tienen aún este navegador como aplicación por defecto porque no saben como actualizar su navegador, porque adquirieron una copia ilegal de Windows (realmente conozco pocas personas con Windows legal) e instalaron el Windows Genuine Advantage (WGA) que antes era descargado automáticamente y ahora no pueden seguir actualizando, crisis económica que impide comprar equipos nuevos y otras razones que sólo ese gran porcentaje de usuarios conoce.
A donde quiero llegar es que en mi país aun hay mucha gente que por muchas razones usan IE6, y si quieres llegar a todo el mundo a través de tu página web como medio publicitario, es necesario que tomes en cuenta a toda esa gente. Por otro lado, pienso que para una aplicación web (como es el caso de Google Apps) es ilógico seguir soportando IE6; y sé que mientras más empresas grandes se vayan sumando al NO-IE6, más rápido dejaremos de usar IE6 todos. Quizás es en este punto donde no compartamos la idea: creo que el actualmente son los grandes como Google los que deben hacer la diferencia y no las páginas pequeñas, las cuales se unirán en un futuro cercano a este movimiento.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: