2010-05-14 13 views
9

Tengo un GIF animado que se repite tres veces. Me he dado cuenta en Firefox y Chrome (no he comprobado otros) que puedo ver el GIF una vez y luego, si recargo la página, el GIF almacenado en caché no se anima en absoluto.GIF animado que no funciona en FireFox después del caché

¿Hay alguna solución a esto? ¿Hay algo sobre el GIF animado que pueda cambiar para evitar que esto ocurra?

Respuesta

0

¿Podría indicarnos el GIF en cuestión? ¿Sucede con todos los GIF que usas? Todo hecho con la misma aplicación?

De todos modos, simplemente no caché y listo, resuelto. Pero creo que debería usar otra aplicación para crear su GIF y ver si funciona correctamente.

1

La solución que elegí en este caso fue agregar una variable GET al final del nombre gráfico, evitando que el gráfico se vuelva a cargar desde la memoria caché cuando la página se actualiza.

var myImg = new Image(); 
myImg.src = "image.gif?rnd=" + Math.random(); 
-5

En Firefox, puede forzar una recarga completa (recargar la caché) con Ctrl + Shift + R o Ctrl + F5.

En Chrome, es Ctrl + F5 oShift + F5.

+1

Él está haciendo esta pregunta desde el punto de vista de un programador. Usted respondió desde el punto de vista de un usuario. Él, como programador, no puede pedirle al usuario que "fuerce una recarga completa" :) – Octavian

3

Es una solución súper fea, pero puede usar esto si llama la imagen en línea, no es bonita, pero funciona.

<img src="filename.gif?rand=<?=rand(1,1000);?>" alt="" /> 

esperanza que ayuda funciona la solución de

+0

Impresionante solución. No pienses que es feo en absoluto. Elegante realmente :) – Foxinni

+1

Cabe señalar que esto es PHP. – Jerome

1

Jade O'Connor, pero como se ha dicho que es una solución fea. Porque cada vez que visita la página, la imagen se descarga del servidor. Esto conduce a problemas de ancho de banda para imágenes grandes. Esto también aumenta el tiempo de carga de la página, por lo tanto, es malo para conexiones lentas.

¿Existe una solución mejor?

me di cuenta de algo como esto:

que regenera el gif animado en el modo de bucle "para siempre". En mi gif, había 20 cuadros y cada uno se muestra durante 150 ms. Entonces, ese paso del ciclo dura 3 segundos. También creé una versión jpeg del último cuadro de la animación.

Cuando carga la página utilicé el método window.setTimeout() para reemplazar el gif con el jpeg después de 3 segundos. Porque, quería que el cuadro final permaneciera quieto cuando el primer paso del ciclo haya terminado. Pero hubo problemas de tiempo. Cuando se muestra el último fotograma, la animación se reinicia antes de que pueda reemplazar el gif por el jpeg. ¿Hay alguna forma de detectar si la animación finaliza o se reinicia?