Bonjour
Encore une animation Flash :o !
Flash, c'est peut-être pratique à utiliser quand on fabrique un site, mais cela provoque indéniablement une certaine lourdeur pour les ordinateurs des visiteurs qui seront chargés de la faire tourner... et le cas présent en est un nouvel exemple :rolleyes: (longueur du chargement, charge CPU à l'exécution).
Chez moi, le (début du) chargement avant l'apparition de la première image prend
26 secondes, ... et le fonctionnement du diaporama occupe ensuite entre 75% et 90% du temps CPU tant que la page reste visible :siffle: !
Je pense que la lenteur tient essentiellement au fait que la technologie choisie n'est pas adaptée aux caractéristiques du site. En effet, les éléments à charger sont volumineux alors que le débit de transmission est faible.
Voilà ce qui se passe:
- Les principaux éléments constitutifs de la page (html, css, scripts), hors animation Flash, sont chargés.
Cela prend 5 secondes.
- La page s'affiche, avec un espace blanc dans son milieu.
- Le code Flash (bzAnimation.swf) commence ensuite à être charger.
Il pèse 124 Ko et prend 8 secondes.
- L'encart Flash affiche qu'il procède au chargement du diaporama.
- La première image (A040C764-95F1-489B-AAF4-6B248ED4C93D.png) est chargée.
Elle pèse 184 Ko et prend 12 secondes.
- La première image s'affiche finalement dans l'encart Flash, et la page paraît enfin complète.
26 secondes se sont passées depuis l'ouverture de la page.
- En arrière-plan, les images suivantes continuent à être téléchargées.
Cette opération n'est pas perceptible pour l'opérateur, qui peut visualiser la première image pendant ce temps.
Dans ces conditions, même s'il était possible de réduire de manière significative le temps de chargement apparent de la page, on ne pourrait de toute manière pas atteindre des temps acceptables (moins de 3 secondes) sans en modifier les principes de composition (i.e. ne pas utiliser Flash, changer de code Flash, ou afficher quelque chose d'autre pendant son chargement en arrière-plan).
La technique souvent employée pour accélérer l'affichage d'une page est le pré-chargement des éléments ("preload"). Elle consiste notamment, pour les images, à insérer dans la page un script du style:
Bloc de code:
[B]<script type="text/javascript">[/B]
[B]var[/B] [I][COLOR="Sienna"]x[/COLOR][/I] [B]= new image();[/B]
[I][COLOR="Sienna"]x[/COLOR][/I][B].src = "[/B][I][COLOR="Sienna"]http://monsite/monimage.png[/COLOR][/I][B]"
</script>[/B]
On pourrait ainsi croire qu'en pré-chargeant la première image, celle-ci serait immédiatement utilisée par l'animation Flash. Mais il n'en est rien: dans le cas présent, lorsque le code Flash chargé commence à s'exécuter, la première image n'a pas eu le temps d'être totalement pré-chargée à cause de sa taille, et le code Flash recommence de ce fait le chargement complet de cette image (l'image serait finalement chargée deux fois).
Concernant le pré-chargement du code Flash, on se heurterait au même problème, à moins de modifier le code JavaScript qui le gère. Mais ce dernier est tellement "offusqué" (codé de manière intentionnellement illisible), je ne pense pas qu'il soit raisonnable de tenter de le faire.
Ce qui pourrait faire gagner du temps, en revanche, serait de choisir un première image à afficher très légère en volume (quelques dizaines de Ko). Son temps de chargement serait ainsi beaucoup moins péjorant, et elle pourrait même être préchargée avec succès (à vérifier, tout de même) en utilisant la technique que j'ai indiquée au-dessus. On pourrait ainsi diviser par deux le temps de chargement apparent de la page.
