Différer le chargement d'une div

Résolu/Fermé
mike571 - Modifié par pijaku le 22/11/2013 à 10:13
 Utilisateur anonyme - 23 nov. 2013 à 11:19
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

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