Différer le chargement d'une div

Résolu
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

  1. 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
    1. 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
  2. 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