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:
- smid den problematiske blok allernederst på siden, lige før
</body> - pak den ind i en
<div id="lazyDiv" style="display:none"> - der hvor den egentlig skal være smider man en
<div id="targetDiv" >loading...</div>. - 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…
28. October 2005 kl. 08:22
Hmm.. Må man stjæle det trick? :-)
28. October 2005 kl. 08:45
Steal away!
Og du hellere end gerne forbedre tricket :-)
28. October 2005 kl. 09:00
Tak dalle, det skal da helt sikkert forsøges det her…
28. October 2005 kl. 09:23
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”
28. October 2005 kl. 09:24
God ide, jeg stjaeler loes.
28. October 2005 kl. 09:38
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?
28. October 2005 kl. 16:09
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?”)…
28. October 2005 kl. 16:21
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?”)…
28. October 2005 kl. 16:34
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?
28. October 2005 kl. 21:15
Sejt! Dalle redder dagen! :)
19. November 2005 kl. 23:25
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…