Forsinket visning af eksterne blokke

Jeg har jævnligt revet mig selv i håret over at min weblog ser ud til at være nede, når enten albinogorillas eller flickrs services er det.

Symptomet er klart: siden loader indtil det sted, hvor jeg plejer at vise billeder udefra, og så hænger indlæsningen mens den forsøger at få fingrene i de servere, hvor indholdet ligger.

På et eller andet tidspunkt opgiver den og fortsætter.

Men det er der vitterligt ingen, der gider vente på.

Først forsøgte jeg at benytte mig af AJAX biblioteket Prototype.js, da man her jo kan lave ting og sager i baggrunden.

Det kunne jeg ikke få til at virke. Muligvis noget med at <script src=".."></script> ikke bliver evalueret af evalScripts:true i min Ajax.Updater.

Så jeg gik efter en enkel løsning:

  1. smid den problematiske blok allernederst på siden, lige før </body>
  2. pak den ind i en <div id="lazyDiv" style="display:none">
  3. der hvor den egentlig skal være smider man en <div id="targetDiv" >loading...&lt/div>.
  4. så skriver man en javascript funktion der kopierer innerHTML fra lazyDiv til targetDiv og kalder den fra et script-tag lige efter lazyDiv’en nederst på siden.

Det er princippet. Og det virker nogenlunde efter hensigten, men vigtigst: det giver en Markant bedre load-tid!

View source nu, hvis du vil se, hvordan det præcist er gjort. (Det ændrer sig måske senere.)

PS:Jeg kan måske godt overtales til at gå mere i detaljer, hvis det har interesse…

11 kommentarer til “Forsinket visning af eksterne blokke”

  1. erlando siger:

    Hmm.. Må man stjæle det trick? :-)

  2. dalager siger:

    Steal away!
    Og du hellere end gerne forbedre tricket :-)

  3. Jonas siger:

    Tak dalle, det skal da helt sikkert forsøges det her…

  4. troels siger:

    Det er klart mere interesse for detaljer. Du kan jo snakke bukserne af selv de værste chicks med din kodesnak.

    “Vil du med hjem og se min kode”

  5. Thomas siger:

    God ide, jeg stjaeler loes.

  6. lisa siger:

    tak, det pyntede :-)
    ellers kunne du vel bare ‘fortælle’ hvor meget hhv albino og flickr fylder i width og height så pladsen reserveres til dem?

  7. Morten siger:

    Hmm, det kan godt være det virker, men jeg når ikke at se det, for det får IE (6) til at crashe (”Vil du sende en fejlrapport?”)…

  8. Morten siger:

    Hmm, det kan godt være det virker, men jeg når ikke at se det, for det får IE (6) til at crashe (”Vil du sende en fejlrapport?”)…

  9. dalager siger:

    Mystisk. IE fungerer fint hos mig — sidder ligenu og skriver fra den. Og konstaterer at kommentarsiden ligner en gammel heks med grimme tænder i IE.
    Hm. Nå. Noteret.

    Flere, der har problemet?

  10. Rasmus siger:

    Sejt! Dalle redder dagen! :)

  11. Jonas siger:

    Det er sgu lækkert lavet, og virkelig simpelt. Godt tænkt dalager. Men nu har jeg smidt det på min blog, og det ser ud til at virke helt fint, altså lige bortset fra, at Safari lukker og slukker når den har loadet siden. Meget mystiskt, alle de andre browsere virker fint, men safari kaster op over den, endda i en sådan hast, at jeg ikke kan nå at se hvad den skriver i js-debuggeren. Jeg vender tilbage med mere troubleshooting…

Skriv en kommentar

Hvad er 2 plus 2? (antispam spørgsmål...)