Différer le chargement d'une div

Résolu
mike571 -  
 Utilisateur anonyme -
Bonjour,

J'aimerais retarder le chargement d'un contenu (iframe facebook,twitter) d'une div. J'ai trouvé des choses pour les scripts comme defer="true" mais rien de fonctionnel pour une div. Le but est simplement de retarder le chargement des boites facebook et twitter car leur contenu est lent a être récupéré, et retarde beaucoup le chargement des pages.

J'ai trouvé quelques pistes, comme l'utilisation d'ajax..

$(window).load(function () { // run code });

Mais comment mettre ça en oeuvre, sachant que ma div est dans un fichier .tpl.


Un pti exemple concret serait le bienvenu.

Merci pour votre aide


2 réponses

Utilisateur anonyme
 
Bonjour, à la fin du chargement de la page, tu ne peux pas insérer le contenu dans ton div via un timer ?

Dans le genre :

function insererFB() { 
document.getElementById("tonDiv").innerHTML = "contenu facebook";
clearInterval(Timer);
}

$(window).load(function () {
Timer = setInterval("insererFB()", 2500); /* 2500 = 2.5 sec */
}
0
mike571
 
Merci pour ta réponse,

Donc si je comprend bien, tu inserts dans un premier temps le div dans une variable, puis tu la charges avec une fonction timer?

Mais est-ce que le fait d'insérer le div dans la variable l'empêche forcement d'être chargé ? Voir ne faut-il pas que le div soit déjà chargé pour permettre un getElementById, et l'afficher par la suite ?

Je suis totalement débutant dans ce domaine donc c'est pas tout clair pour moi :)

Sinon j'ai trouvé mon bonheur sur ce site : http://fr.openclassrooms.com/informatique/cours/ajax-et-l-echange-de-donnees-en-javascript/exemple-demonstratif pour ceux que ça intéresse.

Comme mes iframe sont dans des div's cachés qui apparaissent au survole de la souris je m'en suis sorti avec :

        function getText() {
var sContent = "";

if (document.body.innerText) {
sContent = window.facebookbox.document.body.innerText;
} else {
sContent = window.facebookbox.document.body.innerHTML;
sContent = sContent.substring(5, sContent.length - 6);
}

document.getElementById("output").innerHTML = sContent;
}


<a class="social_facebook" target="_blank" href="#" onmouseover="document.getElementById('facebookbox').src = 'lien de l'ifram facebook ici';">
<div class="social_facebook_content"><iframe scrolling="no" id="facebookbox" frameborder="0" allowtransparency="true" style="border:none; overflow:hidden; width:292px; height:258px;"></iframe></div>
</a>
0
Utilisateur anonyme
 
Bonjour, non le div doit bien être présent au chargement mais vide. Le timer insert du code dans le div après le chargement dans un temps donné.
0