[css][javascript] Chargement d'élément après le reste de la page

Bonjour,

[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 ?

Merci d’avance

la méthode la plus simple consiste à mettre les appels de ressources externes en fin de fichier html.

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

Salut!

Je suis confronté a ce problème car mes ads sont longues a charger (plusieurs secondes).

J’ai essayé en Ajax avec jQuery , ça donne ça :

$(document).ready(function(){ $.ajax({ url: './includes/ads_topAjax.php', dataType: "html", timeout: 1000, error: function(){ $('#header_ads').html('Error'); }, success: function(result){ $('#header_ads').html(result); } }); })

Le fichier ads_topAjax.php que j’appele renvoie le code javascript pour loader ma pub que voila :

<?php echo "<script type='text/javascript'><!--//<![CDATA[ var m3_u = (location.protocol=='https:'?'https://www.xxx.com/openx/www/delivery/ajs.php':'http://www.xxx.com/openx/www/delivery/ajs.php'); var m3_r = Math.floor(Math.random()*99999999999); if (!document.MAX_used) document.MAX_used = ','; document.write (\"<scr\"+\"ipt type='text/javascript' src='\"+m3_u); document.write (\"?zoneid=1&amp;target=_blank\"); document.write ('&amp;cb=' + m3_r); if (document.MAX_used != ',') document.write (\"&amp;exclude=\" + document.MAX_used); document.write (\"&amp;loc=\" + escape(window.location)); if (document.referrer) document.write (\"&amp;referer=\" + escape(document.referrer)); if (document.context) document.write (\"&context=\" + escape(document.context)); if (document.mmm_fo) document.write (\"&amp;mmm_fo=1\"); document.write (\"'><\/scr\"+\"ipt>\"); //]]>--></script><noscript><a href='http://www.xxx.com/openx/www/delivery/ck.php?n=a9f3f884&amp;cb=333333' target='_blank'><img src='http://www.xxx.com/openx/www/delivery/avw.php?zoneid=1&amp;cb=333333&amp;n=a9f3f884' border='0' alt='' /></a></noscript>"; ?>

Le problème c’est que quand vient le temps de charger la pub elle fait disparaitre le reste de la page et apparait sur un fond blanc.

Pensez-vous que c’est du au code javascript ci-dessus, fournis par mon logiciel de ads (openx ou openads) ?

Peut être ces document.write qu’il faut changer ?

Merci d’avance.
Peace!