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




Reproducir sonidos con JavaScript

8 12 2009

Esta semana, estaba haciendo una función en la que traigo data a una página usando JSON, y al momento de analizar la data, el cliente me solicitó que quería algunas alertas de sonido si se presentaban ciertas condiciones.

La primera opción que probé fue publicada en Pizcos Blog y usa un plugin para JQuery que se llama jquery.sound. Lee el resto de esta entrada »





Bordes redondos en Opera

16 09 2009
Bordes redondos en opera

Bordes redondos se ven cuadrados en Opera

Hace días estaba creando bordes redondos a algunos div en diferentes exploradores. Comencé primero modificando el CSS y agregué el siguiente código:

-moz-border-radius:4px;
-khtml-border-radius:4px;
-webkit-border-radius:4px;

Con eso fue suficiente para Firefox, Chrome y Safari. Sin embargo, también quería lograr el mismo look & feel en Opera y en el tan odiado para todos IE6: por lo que empecé a buscar varios JS que me ayudaran en esta tarea.
Lee el resto de esta entrada »