begin process at 2008 08 30 00:15:38
1 233 952 membres
470 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Améliorer un code trouvé sur ce site [ CSS / Général ] (chriss22)

Améliorer un code trouvé sur ce site le 03/07/2008 16:45:21

chriss22
Bonjour,
je suis nouveau sur le forum et complètement novice en javascript. Moi je suis plus php.
Cependant j'ai trouvé un code pour mon site qui permet de précharger des images. Voici ce que ca donne: [ Lien ]
Attendez le chargement complet avant de démarrer le diaporama, l'effet est grantie !
Je voudrais ajouter une fonction qui afficherait a côté de la barre le poucentage du chargement (0%...40%...100%).
Mais malgré mais tentative je n'y arrive pas. Quelqu'un n'aurait pas une idée ?

Voici le code :
<html>
<head>
<title>Préchargement des images...</title>
<script language="JavaScript">
// modifier ce qui suit
 var locationAfterPreload = "http://www.codes-sources.com" // l'addresse de la page après que le préchargement fini
 var lengthOfPreloadBar = 150 // Longueur de la barre de progression en pixels
 var heightOfPreloadBar = 15 // Hauteur de la barre de progression en pixels
 // les images a precharger(mettez-en autant que vous voulez)
 var yourImages = new Array("http://www.bla.com/test1.gif","http://www.bla.com/test2.gif","http://www.bla.com/test3.gif","http://www.bla.com/test4.gif","http://www.bla.com/test5.gif")
if (document.images) {
 var dots = new Array()
 dots[0] = new Image(1,1)
 dots[0].src = "black.gif" // couleur de la barre en default
 dots[1] = new Image(1,1)
 dots[1].src = "blue.gif" // couleur de la barre en progression
 var preImages = new Array(),coverage = Math.floor(lengthOfPreloadBar/yourImages.length),currCount = 0
 var loaded = new Array(),i,covered,timerID
 var leftOverWidth = lengthOfPreloadBar%coverage
}
function loadImages() {
 for (i = 0; i < yourImages.length; i++) {
  preImages[i] = new Image()
  preImages[i].src = yourImages[i]
 }
 for (i = 0; i < preImages.length; i++) {
  loaded[i] = false
 }
 checkLoad()
}
function checkLoad() {
 if (currCount == preImages.length) {
  location.replace(locationAfterPreload)
  return
 }
 for (i = 0; i <= preImages.length; i++) {
  if (loaded[i] == false && preImages[i].complete) {
   loaded[i] = true
   eval("document.img" + currCount + ".src=dots[1].src")
   currCount++
  }
 }
 timerID = setTimeout("checkLoad()",10)
}
</script>
</head>
<body>
<center>
<font size="4">Préchargement des images...<br>
</font><p>
0%
<script language="JavaScript">
// il est fortement recommande de garder le lien 'annuler' au cas ou l'utilisateur, pour une raison ou pour une autre, ne peux pas voir les images(navigateur)
if (document.images) {
 var preloadBar = ''
 for (i = 0; i < yourImages.length-1; i++) {
  preloadBar += '<img src="' + dots[0].src + '" width="' + coverage + '" height="' + heightOfPreloadBar + '" name="img' + i + '" align="absmiddle">'
 }
 preloadBar += '<img src="' + dots[0].src + '" width="' + (leftOverWidth+coverage) + '" height="' + heightOfPreloadBar + '" name="img' + (yourImages.length-1) + '" align="absmiddle">'
 document.write(preloadBar)
 loadImages()
}
document.write('<p><small><a href="window.location=locationAfterPreload">Annuler</a> &nbsp;</small></p>')
</script>
</center>
</body>
</html>

Merci d'avance !

Re : Améliorer un code trouvé sur ce site le 03/07/2008 16:48:37

chriss22

Pardon j'ai du me trompé de catégorie.
Désolé


Re : Améliorer un code trouvé sur ce site le 03/07/2008 17:02:01

bultez
Membre Club

bonjour,

la catégorie n'est pas grave si on cause javascript en fait...
un préchargement ? c'est généralement totalement inutile voire nuisible !

>>Attendez le chargement complet avant de démarrer le diaporama, l'effet est grantie !
ben justement ! qui va attendre devant une page blanche ( ou un message du style
"chargement en cours" ) pendantje ne sais combien de temps ?
pour moi tu ferais mieux de supprimer ce préchargement.

préchargement =  chargement de toutes les images, même celles
qu'on ne visionnera jamais  + temps d'affichage en réel pour chaque après
mais page blanche pendant tout ce temsp

pas de préchargement: temps d'affichage de la 1ère image et c'est tout
puis aprés pour chaque nouvelle  image voulue, son temps de chargement
et pour le réaffichage le cache sait faire.

ce n'est que mon avis


                Cordialement            Bul         [mon Site]     [M'écrire]

Re : Améliorer un code trouvé sur ce site le 03/07/2008 17:16:29

chriss22
Bonjour et merci,
Je suppose que vous n'avez pas été voir ma page vu ce que vous me dites là.
En effet, j'y propose 2 modes.
Le premier sans préchargement et le second avec (le liens que j'ai donnée est avec préchargement).
C'est donc l'utilisateur qui choisit s'il veut ou pas le préchargement (désactivé par défault).
Ensuite lors du chargement des images qui prend 30s environ (avec un dowload de 900kbits chez mois) la page n'est pas blanche, elle tout a fait opérationnelle, on peut se servir du diaporama (sauf pour des vitesse élevée où là il faut attendre la fin du préchargement).
Ce préchargement est pour moi très utile car je présente des images du ciel (mon site parle de la météo de ma ville).
Ainsi grace au préchargement, je peux y faire défiler les 144 images qui représente 24h avec une frame de 100ms par image, ce qui fait un petit film de la journée.
Je réitère donc ma demande afin de savoir comment placer un texte a coté de la barre de chargement afin d'afficher le pourcentage en temps réel.

Re : Améliorer un code trouvé sur ce site le 03/07/2008 17:51:04

kazma
si je me trompe pas les images sont place dans un tableau tu pourait essayer de gere la fonction dans ce sens

 var le_tableau = new Array(1,2,3,4,5,6,7,8,9);
 alert(le_tableau.length);

cette exemple de donne la taille de ton tableau si a un moment donne tu parcoure le tableau tu connaitra la taille du tableau ou plutot le nombre des image deja precharge si tu a au totale de 50 image a precharge et que le tableau en comporte 20
20/(50/100) te donnera le poucentage de progression  tu pourait affiche dans un champ ce pourcentage.

a voire maintenant en fontion de ton script si c'est possible


Re : Améliorer un code trouvé sur ce site le 03/07/2008 18:52:10

chriss22
J'y ai pensé, ou encore plus simple, il y a des boucles for dans le script, je peux utiliser le i de la boucle pour afficher ce pourcentage. Mais c'est comment l'afficher ? Par quelle fonction, j'avais placé un i déjà dans une boucle mais ca m'affichait une série de chiffre à la suite, et non un chiffre qui s'efface pour ensuite afficher la nouvelle valeur de i.

Re : Améliorer un code trouvé sur ce site le 03/07/2008 19:37:49

kazma
ei si tu declare un variable globale tu assigne la valeur du i a cette varible ce qui fait que la valeur du i peut etre lu par une autre fonction . pour eviter des changement de la valeur trop rapide a lire la fonction sera execute selon un certain interval (setTimeout) et aussi  arondi  la valeur ( ex : 15.22457894452 arondi a 15).
a tester

Re : Améliorer un code trouvé sur ce site le 03/07/2008 20:09:28

chriss22
Bon bah c'est bon j'ai réussi tout seul, après pas mal de recherche. Merci a kazma de m'avoir aider.
La solution je l'ai trouvé dans un script d'affichage de l'heure en temps réel. Je m'en suis servi pour afficher la poucentage ainsi que le nombre d'image downloadé.
Résultat ici : [ Lien ]
A+

Re : Améliorer un code trouvé sur ce site le 03/07/2008 20:46:32

Classé sous : images, http, var, gif, www

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS