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);
}





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 »





Problemas con display:fixed en IE6?

5 08 2009
El dilema del arquitecto de Matrix

El dilema del arquitecto de Matrix

Desde siempre, IE6 ha sido un dolor de cabeza para todos los desarrolladores web. Uno de los grandes problemas ha sido que el IE6 no reconoce el display:fixed. Buscando en Internet podrán encontrar varios hacks: coloca el display:absolute y luego coloca el margin tal y blablabla. Yo prefiero usar un js que puedes descargar desde la página de doxdesk.com con el cual, el único código que necesitas agregar para arreglar la propiedad fixed en IE6 es:

<script type="text/javascript" src="fixed.js"></script>

Y con eso solucionas el problema. Yo lo acabo de usar para hacer una pestaña al lado derecho de una página, esta pesaña es un anchor, y no presenta problemas con el display:fixed en ningún explorador.