[Explications]
Sur le site web en php, j’ai plusieurs éléments en flashs, entre autre pour afficher la pub, quelques news et des graphiques dynamiques que ce soit en accueil ou dans le reste du site.
Le fait est que quelquefois, lors de la récupération des informations sur les sites extérieurs il y a des “lags” et alors l’affichage se fait en 2 morceaux, la bannière puis les différentes colonnes, et cela peut prendre plusieurs secondes, entre 5 et 30 secondes.
C’est donc très gênant.
[/Explications]
Mon objectif est donc de ne charger ces éléments seulement une fois que le reste de la page est chargé pour que les gens puissent accéder au reste du site rapidement
J’ai rechercher des méthodes qui seraient existantes, mais je n’ai rien trouvé de concluant, sur les scripts javascripts je tombe que sur des “pré-chargements” mais moi ce serait plutôt des “post-chargements”. j’ai bien trouvé une méthode mais je n’ai pas cette impression que cela marche .
En gros la méthode que j’ai trouvé est la suivante :
J’ai un DIV contenant mon objet flash, qui est de base en visibility : hidden / display : none.
Dans mon “body” je met un onload avec la fonction javascript à utiliser et l’ID de la balise DIV.
et cette fonction utilise un getElementById, pour que le style visibility/hidden passe en visible/block.
Mais si je comprend bien, cela ne fait que cacher l’affichage mais le chargement se fait quand même.
Alors est-réellement une bonne méthode qui ne soit pas lourde ou comme je le pense cela ne changera rien au problème ?
Yep, j’y pensais aussi, le plus simple c’est de déclarer les div de contenu intéressant en premier, et les bannieres de pubs etc en dernier (en gros, ne pas faire correspondre l’ordre des éléments HTML à leur ordre d’affichage… Un coup de css plus tard, et tout rentre dans l’ordre).
L’autre solution, consiste à mettre les ressources dynamique dans des fichiers / scripts PHP à part, et de les charger dynamiquement en Javascript via XmlHttpRequest au lieu de les inclure dans ta page