11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Le petit bidule qui permet d'afficher les derniers visiteurs d'un site grâce à Mybloglog s'affiche grâce à un javascript.

Or ce javascript peut être un peu lent parfois et donc ralentir l'affichage complet de la page car si j'ai bien compris la page se charge progressivement et attend que le javascript soit chargé pour continuer (?).

Je cherche donc une astuce afin de faire charger cette petite partie de page après tout le reste.

Il y aurait éventuellement l'utilisatin d'un iframe il me semble (?), mais ça ne me semble pas très classe comme méthode Smiley ohwell .

Connaissez-vous une technique pour faire charger ce javascript à la fin s'il vous plait :- ?
Bonjour,

as-tu essayer en mettant l'appel de ton scrip en fin du body, après tout le contenu, tout simplement ? Ce qui donnerait, en fin de fichier, quelquechose comme :
<script type="text/javascript">mafonction();</script></body>


Basille
Mui mais en fait le script est sous cette forme :
<script type="text/javascript" src="http://pub.mybloglog.com/comm2.php?mblID=2007011309363900&amp;c_width=253&amp;c_sn_opt=n&amp;c_rows=2&amp;c_img_size=f&amp;c_heading_text=&amp;c_color_heading_bg=FFFFFF&amp;c_color_heading=000000&amp;c_color_link_bg=FFFFFF&amp;c_color_link=000000&amp;c_color_bottom_bg=FFFFFF"></script>


et affiche les noms des derniers visiteurs sur le site. Donc en le mettant dans le <body> ou à la toute fin il ne va plus s'exécuter Smiley decu
Merci pour vos réponses Smiley smile .

Si je déplace
<script type="text/javascript" src="http://pub.mybloglog.com/comm2.php?mblID=2007011309363900&amp;c_width=253&amp;c_sn_opt=n&amp;c_rows=2&amp;c_img_size=f&amp;c_heading_text=&amp;c_color_heading_bg=FFFFFF&amp;c_color_heading=000000&amp;c_color_link_bg=FFFFFF&amp;c_color_link=000000&amp;c_color_bottom_bg=FFFFFF"></script>

juste avant le </body>, qu'est-ce que je mets à l'endroit où ce <script> était avant, c'est à dire à l'endroit où je veux que s'exécute le script à la fin du chargement de la page : -?

J'ai déplacé mon <script> à la fin de ma page, juste avant le </body>, mais cela affiche donc le script à la fin de la page Smiley ohwell . Je laisse la chose en place sur http://www.yazerty.net/ pour illustrer ce que ça donne...
Modifié par Yazerty (05 Jun 2007 - 17:54)
Il n'y a pas un forum Mybloglog, une FAQ technique, une liste de diffusion, une API ou quoi que ce soit à se mettre sous la dent pour savoir comment implémenter leur script du mieux possible ?

Edit : sujet déplacé.
Modifié par Florent V. (05 Jun 2007 - 18:33)
Yazerty a écrit :
Merci pour vos réponses Smiley smile .

Si je déplace
<script type="text/javascript" src="http://pub.mybloglog.com/comm2.php?mblID=2007011309363900&amp;c_width=253&amp;c_sn_opt=n&amp;c_rows=2&amp;c_img_size=f&amp;c_heading_text=&amp;c_color_heading_bg=FFFFFF&amp;c_color_heading=000000&amp;c_color_link_bg=FFFFFF&amp;c_color_link=000000&amp;c_color_bottom_bg=FFFFFF"></script>

juste avant le </body>, qu'est-ce que je mets à l'endroit où ce <script> était avant, c'est à dire à l'endroit où je veux que s'exécute le script à la fin du chargement de la page : -?

J'ai déplacé mon <script> à la fin de ma page, juste avant le </body>, mais cela affiche donc le script à la fin de la page Smiley ohwell . Je laisse la chose en place sur http://www.yazerty.net/ pour illustrer ce que ça donne...


Bonjour,

Il faut initialiser le script à la fin du chargement, il faut donc lancer une fonction qui implante le script.

Les solutions de Basille et BlueScreen sont mauvaises, tu dois attacher la fonction sur l'evenement onload du body via une fonction dédiée (voir addEvent sur quirksmode)

Il me semble que l'implantation de scripts via le dom plante sous Safari, tu devra donc utiliser document.write.
Pardon pour la mauvaise sélection du forum Florent Smiley ohwell .

Tout ce que j'avais trouvé dans la FAQ c'est ça Smiley ohwell :

a écrit :
# How do I add MyBlogLog to my Wordpress blog?
Wordpress uses .php files instead of .html, but the content is the same. Just edit index.php and drop the tracking code directly after the OPEN body tag (< body >).


Ce qui est un peu mince Smiley decu .

Shinuza > Il faudrait que je fasse un truc qui ressemble à ça donc :


<body onLoad="Chargement();">

(...)
A l'endroit de l'affichage voulu :
<SCRIPT language="Javascript">
Chargement();
</script>

(...)


<SCRIPT language="Javascript">
<!--
function Chargement() {
document.write("<script type=\"text/javascript\" src=\"http://pub.mybloglog.com/comm2.php?mblID=2007011309363900&amp;c_width=253&amp;c_sn_opt=n&amp;c_rows=2&amp;c_img_size=f&amp;c_heading_text=&amp;c_color_heading_bg=FFFFFF&amp;c_color_heading=000000&amp;c_color_link_bg=FFFFFF&amp;c_color_link=000000&amp;c_color_bottom_bg=FFFFFF\"></"+"script>");
}
//-->
</SCRIPT>
</body>


C'est l'idée :- ? Pour l'écriture de ma fonction je me suis inspiré de http://www.zone-webmasters.net/forum/showthread.php?tid=100

Là ça donne un comportement étrange : ça se charge mais immédiatement après le chargement de la page ça redirige vers une page qui ne m'affiche que le javascript affichant les derniers visiteurs inscrits sur MBL. Cette page reste http://www.yazerty.net/ (dans la barre d'adresse de Firefox en tout cas).

Si c'est l'idée je ne comprends pas comment formater mon javascript final (situé avant le </body>). Il faut bien que j'utilise document.write("") non :- ?
<body>

A l'endroit de l'affichage voulu :

<script type="text/javascript">
    //<![CDATA[
		Chargement();    
    //]]>
</script>






<script type="text/javascript">
//<![CDATA[
function Chargement() {
	document.write("<script type=\"text/javascript\" src=\"http://pub.mybloglog.com/comm2.php?mblID=2007011309363900&c_width=253&c_sn_opt=n&c_rows=2&c_img_size=f&c_heading_text=&c_color_heading_bg=FFFFFF&c_color_heading=000000&c_color_link_bg=FFFFFF&c_color_link=000000&c_color_bottom_bg=FFFFFF\"></"+"script>");
}
//]]>
</script>

</body>


et

addEvent(window,'load',chargement);


Et essaye avec le dom pour l'insertion, ça sera plus propre, et recherche la fonction addEvent() postée sur quirksmode.

On appelle ça le code non intrusif Smiley jap
Shinuza a écrit :
et

addEvent(window,'load',chargement);


Et essaye avec le dom pour l'insertion, ça sera plus propre, et recherche la fonction addEvent() postée sur quirksmode.

On appelle ça le code non intrusif Smiley jap


Tu parles de ça : http://www.quirksmode.org/blog/archives/2005/08/addevent_consid.html ? (je n'y connais rien en javascript, donc dom & co je ne saisis pas encore très bien ce que c'est, mais j'apprends petit à petit Smiley smile ...)

Je ne comprends pas où tu suggères que j'insère cet addEvent() :- ? Désolé, je suis vraiment un boulet là Smiley sweatdrop
Merci pour ton aide Shinuza Smiley smile ! Mais je ne comprends pas vraiment ce que fait la fonction addEvent ni comment l'insérer (je me perds entre l'anglais et le code que je ne comprends pas en fai Smiley ohwell ) ?
je croi que addEvent permet d'attacher un evenement a ton element
par exemple au lieu de mettre en dur dans ton html

<div id='div_exemple'... onClick='javascript:toto()'> </div>

tu met en JS

div_exemple=document.getElementById('div_exemple');

addEvent(div_exemple,'click',function(e){ toto()});

voila ^^ mais c'est a confirmer Smiley lol
Modifié par hakkou (06 Jun 2007 - 17:57)
Je ne sais pas pourquoi, mais je préssens que ton script utilise du document.write... auquel cas ce sera impossible. IL faudrait vérifier leur code source pour en être sûr.
QuentinC a écrit :
Je ne sais pas pourquoi, mais je préssens que ton script utilise du document.write... auquel cas ce sera impossible. IL faudrait vérifier leur code source pour en être sûr.


Marg*, oui le code qu'ils utilisent dans le script utilise document.write() (2 fois) Smiley sweatdrop .

Ca serait donc impossible de charger ce javascript à la fin Smiley ohwell ? En attendant j'ai mis ça dans un iframe mais les liens s'ouvrent dans l'iframe donc c'est très gruik comme méthode...