2010-05-14 21 views
9

J'ai un GIF animé qui boucle trois fois. J'ai remarqué dans Firefox et Chrome (n'ont pas vérifié les autres) que je peux voir le GIF une fois et puis si je recharge la page, le GIF caché n'est pas animé du tout.GIF animé ne fonctionnant pas dans FireFox après le cache

Y at-il une solution à cela? Y at-il quelque chose à propos du GIF animé que je pourrais changer pour éviter que cela se produise?

Répondre

0

Pourriez-vous nous indiquer le fichier en question? Cela arrive-t-il avec tous les GIF que vous utilisez? Tout est fait avec la même application?

Quoi qu'il en soit, ne cache pas et voila, résolu. Mais je pense que vous devriez utiliser une autre application pour créer votre GIF et voir si cela fonctionne correctement.

1

La solution que j'ai choisie dans ce cas était d'ajouter une variable GET à la fin du nom graphique, empêchant le graphique d'être rechargé du cache lorsque la page est actualisée.

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

En Firefox, vous pouvez forcer un rechargement complet (recharger le cache) avec Ctrl + Maj + R ou Ctrl + F5.

En Chrome, il est Ctrl + F5 ou Maj + F5.

+1

Il pose cette question du point de vue du programmeur. Vous avez répondu du point de vue d'un utilisateur. Lui, en tant que programmeur, ne peut pas demander à l'utilisateur de "forcer un rechargement complet" :) – Octavian

3

C'est une solution super moche mais vous pouvez l'utiliser si vous appelez l'image en ligne, pas joli mais ça marche!

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

espoir qui aide

+0

Solution géniale. Ne pense pas que c'est moche du tout. Élégant vraiment. :) – Foxinni

+1

Il convient de noter que ceci est PHP. – Jerome

1

travaux de solution de Jade O'Connor, mais comme dit est une solution laide. Parce que chaque fois que vous visitez la page, l'image est téléchargée à partir du serveur. Cela conduit à des problèmes de bande passante pour les grandes images. Cela augmente également le temps de chargement de la page, donc c'est mauvais pour les connexions lentes.

Existe-t-il une meilleure solution?

Je compris quelque chose comme ceci:

Je régénérés le gif animé en boucle en mode « pour toujours ». Dans mon gif, il y avait 20 images et chacune est montrée pendant 150 ms. Alors qu'une étape de la boucle dure 3 secondes. J'ai également créé une version jpeg de la dernière image de l'animation.

Lorsque la page se charge, j'ai utilisé la méthode window.setTimeout() pour remplacer le fichier gif par le fichier jpeg après 3 secondes. Parce que, je voulais que le cadre final reste immobile quand la première étape de la boucle est terminée. Mais il y avait des problèmes de synchronisation. Lorsque la dernière image est affichée, l'animation redémarre avant que je puisse remplacer le gif par le jpeg. Est-il possible de détecter si l'animation est terminée ou redémarrée?