Bonjour,
J'étudie depuis un moment un moyen permettant, à une animation Flash de type diaporama, d'afficher les images mises à jour sur le serveur, plutôt que celles présentes dans le cache du navigateur.
Attention, le but n'est pas de forcer le chargement des images toutes les n heures, mais uniquement lorsque celles-ci ont été changées.
Voilà ce que je suis en train de tester (et qui semble marcher), et je voulais savoir si cela peut encore être amélioré, et ce que vous en pensez ?
1. Avant le chargement de l'image, le script Flash interroge un script serveur qui détermine un ID de l'image (sur sa taille et sa date, par exemple).
2. Flash va ensuite vérifier la présence d'un cookie. S'il existe, il va y lire l'ID de la dernière image chargée, sinon, il créé le cookie contenant l'ID de l'image à charger.
3. Dans le premier cas, et si les ID sont différents, Flash va commander le chargement de l'image en ajoutant un paramètre dans le nom du fichier, genre maPhoto.jpg?p=time, pour forcer le chargement.
Si les ID sont identiques, alors l'image n'a pas subie de mise à jour, et on la charge dans Flash sans paramètre dans le nom du fichier (c'est alors la version présente dans le cache du navigateur qui s'affiche)
J'arrive ici au fonctionnement voulu. Par contre, si l'utilisateur refuse les cookies, Flash chargera l'image intégralement depuis le serveur distant, même si elle n'a pas été mise à jour.
Pour remédier en partie à cela, je pensais introduire un chargement aléatoire avec un Rand(). Le but étant que, plutôt que de télécharger l'image à chaque fois, Flash la charge une fois sur 3 (enfin, comme c'est aléatoire, on ne peut pas savoir précisément, mais vous comprenez l'idée).
On peut encore améliorer le tout :
Plutôt que d'interroger le script distant à chaque fois, pour connaitre l'ID de l'image à charger, on peut le faire seulement toutes les n heures.
On lit la date de création du cookie, et si, par exemple, elle est inférieure à 24h, alors on estime qu'il n'est pas nécessaire de vérifier si l'image à été changée, et on l'appelle sans paramètre dans le nom du fichier.
Que pensez-vous de tout ça ??
Actuellement, je bosse sur une autre méthode : l'emploi d'un fichier htaccess avec une commande du type :
Si cela fonctionne, alors il n'y a plus rien à gérer au niveau du Flash, et c'est le navigateur lui-même qui détermine s'il doit se servir dans son cache ou depuis le serveur distant (enfin, je n'en suis pas sûr, c'est à confirmer !)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <Files ~ "\.(jpe?g)$"> Header set Cache-Control "no-cache, must-revalidate" Header set Pragma "no-cache" Header set Expires %D </Files>
Si vous avez des avis sur la chose, merci d'en faire part.
Si vous êtes intéressés pour avoir un fichier FLA de test avec l'emploi de cookie, dites-le aussi.
Merci de m'avoir lu![]()
Partager