Heey

Ik heb een soort van pre-loader, wat te voorschijnkomt voor dat een bepaalde pagina is geladen.

Dit doe ik nu met document.write() maar dan wordt alles wit, totdat alles geladen is.

Hoe kan ik nu zorgen dat de lay-out behouden blijft?
met een alert zou je dat kunnen doen.
Wat voor preloader? In JavaScript?
Nou, eingelijk is het niet echt een pre-loader.

Het is een javascriptje wat de tekst 'bezig met laden' moet weergeven, ondertussen dat de pagina laad.

Zonder dat het de lay-out ver***
Maak een laag die middenin de pagina staat en plaats hier de tekst Bezig met laden...

En zodra de pagina is geladen deze display: none;
nee, dit kan niet, omdat er nog een heleboel javascript wordt uitgevoerd, dus het loading script moet erboven komen
Dit moet je met Javascript DOM doen. In de onload() van je body roep je een functie aan welke je preloader pagina opmaakt (on the fly dus). Deze hang je aan je body (document.body.appendChild ([jouwscherm var])) Na het laden kan je deze weer verwijderen.

Op http://www.w3.org/DOM/#what staat wel wat informatie over DOM. Echt mooi werk maar je moet er wel even je tijd insteken.
DOM is pas beschikbaar nadat de pagina is geladen. Dan is het dus al te laat...

Wat nu waneer je de pagina gewoon laadt, schermpje weergeeft, en dan pas de javascript-zooi gaat laden? En in het laatste bestand dat je laadt (of beter: het enige) zet je onderaan dat dat schempje weer weg moet.
Tja.. dan zit je structuur naar mijn mening niet echt lekker in elkaar. Het beste kan je altijd je HTML en je JS (en de rest) opbouwen voordat je het geheel pas echo't. Zo heb je altijd controle over je onload();.

Dus het vullen van variabelen $onLoad, $JS, $HTML.
De $JS komt daarbij dan ook altijd in je <head> zoals het hoort.
het gaat hier niet om het PHP-gedeelte, maar om het ophalen vermoed ik. Zo te horen is PHP Newbie bezig met een 'fat client', een 'programma' dat veel javascript-code nodig heeft. Probeer het maar eens uit in bijvoorbeeld de mail-demo van [google]Dojo toolkit[/google], die duurt ook eeuwig om te laden. En dan nog het initialiseren. Ik heb wel fat-clients gezien waar 20 seconden lang mijn browser onbruikbaar was omdat er zoveel js moest worden geïnitialiseed. Ik denk dat een novice-gebruiker dan al snel denkt dat zijn browser is vastgelopen. Een 'bezig-met-laden'-venstertje zou dan handig zijn inderdaad.

Dat doet me herinneren aan een pattern dat ik laatst tegen kwam:
On-demand Javascript. Je laadt een functie of bibliotheek pas waneer je hem nodig hebt.

Reageren