> Tous les forumsForum des Webmasters

 precharger toutes les images d'un repertoire
Statut du sujet : NON RESOLU Imprimer
 massi
  Posté le 18/11/2004 @ 22:07  
 Petite astucienne

47 Messages
Salut a tous! Je suis nouvelle sur ce forum, et nouvelle aussi dans la creation de site web :) Je fais appel a vous car mon esprit est bien confus sur la question du prechargement d'images. J'ai beaucoup d'images et je souhaiterais que des que l'on arrive sur mon site les images commencent a se charger dans le cache du navigateur pendant que l'on navigue sur le site. Tant pis si ce n'est pas fini qd on arrive sur une page ou il y a pleins d'images. Alors j'ai inséré un code dans le HEAD de mon index.php, un mix entre php pour parcourir le repertoire et ce code javascript: <script type="text/JavaScript"> i1 = new Image; i1.src = "image/im1.jpg"; i2 = new Image; i2.src = "image/im2.jpg"; </script> -> voir le code entier en fin de message. et ... ca marche! enfin, si on veut: ca charge toutes les images avant de charger la page d'acceuil, et c'etait pas le but d'attendre 40 ans avant de rentrer dans le site. Evidemment je peux precharger les images de la page d'accueil en premier mais ca regle pas le probleme. Puis si on se jette sur un lien avant la fin du prechargement, ben il s'arrete et uniquement les premieres images sont chargées (ai verifié dans temporary internet files). Rigolez pas, ca ne parait pas evident au debut que ca s'arrete si on change de page! Puis si on arrive sur le site sans passer par la page d'accueil, ben rien n'est prechargé. Donc ca va pas du tout, c'est pourquoi je demande votre aide et conseils eclaires, a vous webmaster confirmés. Merci bcp d'avance, massi PS: le code: <?php if ($handle = opendir('image')) { $cpt = 1; echo "<script type=\"text/JavaScript\">\n\n"; while (false !== ($file = readdir($handle))) { echo "i" . $cpt . " = new Image;\n"; echo "i" . $cpt . ".src" . " = \"image/$file\";\n\n"; $cpt++; } echo "</script>"; closedir($handle); } ?>
 Afficher le profil de massiEnvoyer un message privé à massi
 
 
Publicité
 massi  Posté le 22/11/2004 à 20:21  
Petite astucienne

47 Messages
personne veut me donner des conseils alors ? [triste] finalement j'ai mis mon code sur la page sommaire du site (prob la + frequentée, et c'est une page sur laquelle on s'attarde), en esperant que les visiteurs restent suffisamment longtemps dessus pour qu'un bon paquet d'images soit prechargé. mais c'est po vraiment satisfaisant comme solution.. suis un peu pommée sur la question, si qqun se sent de m'eclairer je lui serais reconnaissante [bierre]
Afficher le profil de massiEnvoyer un message privé à massi
 Revenir en haut de la page
 koala01  Posté le 23/11/2004 à 12:50  
Astucien

4715 Messages
Tu pourrais, pour reprendre le téléchargement, remettre le script sur chacune des pages, mais en le midifiant très legerement de manière à ce que le script vérifie la présence des fichiers dans le cache internet de ton visiteur... Ce devrait etre quelque chose du genre if(!file_exists(fichier) { //ici, tu charge l'image } mais je n'en suis pas sur du tout (car le javascript et moi...)
Afficher le profil de koala01 Voir la configuration de koala01Envoyer un message privé à koala01
  Revenir en haut de la page
 massi  Posté le 23/11/2004 à 21:15  
Petite astucienne

47 Messages
oui c'est une bonne idée. Je viens de partir a la recherche d'un truc comme ca mais j'ai pas trouvé. ya que des scripts pour tester la fin du chargement d'une image (mais ca colle pas terrible la) et pas pour tester sa presence dans le cache. ai aucune idée de comment on fait ca... suis pas un brin pro du javascript. si vous une idée une idée n'hésitez pas ! massi [confus]
Afficher le profil de massiEnvoyer un message privé à massi
 Revenir en haut de la page
 massi  Posté le 24/11/2004 à 03:07  
Petite astucienne

47 Messages
ok j'ai la réponse koala01! Tu peux pas verifier si un fichier est present dans le cache ou pas, ca c'est valable que pour les cookies. Mais apparemment les navigateurs le font d'eux-meme et une image presente n'est pas re-telechargée... m'enfin c'est bizarre parce qu'a chaque fois je rafraichis la page ou il y a le script de prechargement ca tourne pas mal de temps....
Afficher le profil de massiEnvoyer un message privé à massi
 Revenir en haut de la page
 koala01  Posté le 24/11/2004 à 03:16  
Astucien

4715 Messages
A vrai dire, les navigateurs font le travail eux meme, mais si tu essaie d'exécuter un javascript sur une page HTML, il modifiera la gestion événementielle du navigateur, et tant pis si les instructions données dans le scripts sont contraire aux réglages par défaut du navigateur (et c'est d'ailleurs ce que l'on remarque tres bien avec les scripts d'ouverture de pop-up: on peut choisir de modifier completement l'apparence de la fenetre...)
Afficher le profil de koala01 Voir la configuration de koala01Envoyer un message privé à koala01
  Revenir en haut de la page
 massi  Posté le 24/11/2004 à 03:29  
Petite astucienne

47 Messages
mmmmmm tu veux dire que mon script force les navigateurs a re-télécharger les images meme si elles sont deja presentes? alors la je sais plus quoi faire ... [pleurer] j'deconne je pleure pas encore en fait [bigsmile]
Afficher le profil de massiEnvoyer un message privé à massi
 Revenir en haut de la page
 koala01  Posté le 24/11/2004 à 03:36  
Astucien

4715 Messages
En gros, c'est que que je voulais effectivement dire... Mais personnellement, je t'avouerai ne pas très bien comprendre l'utilité de précharger TOUTES les images de ton site, sachant qu'avec un peu de (mal)chance, la plupart des visiteurs ne feront sans doute jamais la visite intégrale d'un seul coup....
Afficher le profil de koala01 Voir la configuration de koala01Envoyer un message privé à koala01
  Revenir en haut de la page
 massi  Posté le 24/11/2004 à 04:00  
Petite astucienne

47 Messages
oui c'est vrai, mais comme sur certaines pages il y a un paquet d'images.. c'est toujours + sympathique qd elles s'affichent presque instantanement ! alors je precharge tout pour parer toutes eventualités... pour l'instant j'ai mis mon script sur la page principale de sommaire en esperant que les gens y restent suffisamment longtemps pour tout precharger. Quand le site s'aggrandira je ferai plusieurs rep image et je mettrai le script sur des pages de sommaire secondaires... non ? le seul truc qui me chagrine un peu finalement c'est que ma page de sommaire ne se charge pas completement.. comment faire pour que la page se charge d'abord et que le script de prechargement soit executé apres ?? merci bcp Koala01 pour tes remarques en tout cas!
Afficher le profil de massiEnvoyer un message privé à massi
 Revenir en haut de la page
 koala01  Posté le 24/11/2004 à 09:05  
Astucien

4715 Messages
Il faut noter que, à mon avis, tu as lancé le javascript sur l'évenement "onload" de ta balise body... Il existe plein d'autres attributs événementiels, dont certains s'utilisent avec body (onload : au chargement, onunload: lorsqu'on quitte la page, onexit: lorsqu'on ferme le navigateur, ...) et d'autres qui s'appliquent pour ainsi dire à toutes les balise (onclick: quand on clique sur un élément, onmouseover:quand la souris passe sur un élément, onmouseout: quand la souris quitte un élément, ondrag:quand on commence un "glisser",...) Il me semble meme qu'il existe un attribut événementiel (mais c'est à vérifier) "onexecute", qui lance la commande lors de l'affichage de la page (une fois qu'elle est entièrement chargée)... Ceci dit, il s'agit d'être circonspect avec le javascript: certains *bons* navigateurs permettent de donner le choix d'activer certaines fonctions ou non, et ne supporte par défaut pas certaines foncitons "ésotériques" fournies par IE...
Afficher le profil de koala01 Voir la configuration de koala01Envoyer un message privé à koala01
  Revenir en haut de la page
 massi  Posté le 24/11/2004 à 23:31  
Petite astucienne

47 Messages
suis completement d'accord qu'il faut eviter les trucs "esotériques", pour bien sure j'utilise le validator W3C. et non en fait j'avais pas mis de onload .. (yavait besoin ?) donc finalement j'ai mis cette fonction dans le head: <script type="text/JavaScript"> <!-- function prechargimg() { var doc=document; if(doc.images){ if(!doc.precharg) doc.precharg=new Array(); var i,j=doc.precharg.length,x=prechargimg.arguments; for(i=0; i<x.length; i++) if (x[i].indexOf("#")!=0){ doc.precharg[j]=new Image; doc.precharg[j++].src=x[i]; } } } //--> </script> et ce code en fin de page: <?php if ($handle = opendir('image')) { echo "<script type=\"text/JavaScript\">\n\n"; echo "<!--\n"; echo "prechargimg('logo/logo3.gif'"; while (false !== ($file = readdir($handle))) { echo ",'image/$file'"; } echo ")\n"; echo "//-->\n"; echo "</script>"; closedir($handle); } ?> et j'ai l'impression que ca va mieux... je pense que je vais faire avec. Sauf si qqun a une objection [smile] merci bcp koala01 ! massi
Afficher le profil de massiEnvoyer un message privé à massi
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page