mephlobo
Messages postés4Date d'inscriptiondimanche 24 octobre 2004StatutMembreDernière intervention15 juillet 2007
-
6 juil. 2007 à 18:08
mephlobo
Messages postés4Date d'inscriptiondimanche 24 octobre 2004StatutMembreDernière intervention15 juillet 2007
-
15 juil. 2007 à 01:05
Bonjour !
Je cherche un conseil pour optimiser le temps de chargement d'un de mes sites.
Pour naviguer dans les pages de ce site, j'ai créé un MENU en Flash, menu déroulant avec petites animations.
Comme je n'utilise pas de Frameset, chaque page html charge le menu (menu.swf)
Pour pouvoir dérouler le menu au bon endroit, correspondant à chaque page, j'utilise la variable "menuId" que je passe en paramètre lors de l'appel de "menu.swf " :
Ainsi, dans l'exemple ci-dessus, lorsque l'utilisateur clique sur la 3e option du menu, la 3e page du site se charge, et la 3e sélection du menu se déroule correctement. Le site a 8 pages, j'utilise donc menuId1 à menuId8.
Ce système fonctionne très bien.
Par contre, le problème provient de la manière dont IExplorer (et peut-être d'autres navigateurs, je ne sais pas) place les objets dans le cache.
Au lieu de placer "menu.swf" dans le cache local et ainsi le charger depuis le site uniquement lors du premier appel, IE place dans son cache "menu.swf?menu=menuId1" , "menu.swf?menu=menuId2" , etc.
Donc le problème est que l'animation flash est chargée à chaque choix de menu, jusqu'à ce que toutes les options soient dans le cache (pour les 8 pages).
Ceci ralentit évidemment beaucoup la navigation (même avec une taille de 250kB), et rend le tout peu élégant.
J'ai éventuellement pensé à convertir mon layout en Frameset pour séparer le chargement du contenu et du menu, mais ça complique et rend le site plus lourd.
Auriez-vous un conseil pour optimiser ce problème de cache, ou alors éventuellement changer le design pour contourner le problème ?
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 10 juil. 2007 à 11:39
Salut,
Comme solution, je t epropose de passer par un sharedObject (genre de cookie flash).
A chaque fois qu'un utilisateur clique sur un bouton du menu; tu stock dans le sharedObject une variable indiquant quel 'bouton' doit être sélectionné.
Lorsque tu recharges une page html contenant le menu swf, celui-ci une fois chargé va aller voir dans le sharedObjet quel bouton doit être sélectionné.
Du coup, tu ne charge que menu.swf sans parametre et il est directement dans le cache après le 1er téléchargement.
Pour plus d'info sur les sharedObject, va voir l'aide de flash