Domanda

Se ho una pagina che viene generata usando PHP e poi modificata usando JS che funziona usando:

window.onload = myFunction;

Quindi l'utente vede la pagina originale, che sembra quindi scorrere mentre viene eseguito il codice js e aggiunge i propri bit alla pagina.

C'è un modo per evitare che l'utente sia in grado di vedere questo processo o almeno di renderlo meno ovvio per loro? Forse esiste un metodo più adatto per caricare javascript rispetto a window.onload (uno che può iniziare a funzionare mentre le immagini ecc. Vengono scaricate)?

È stato utile?

Soluzione

Vorrei raccomandare per prima cosa alcune classi sul corpo che attiveranno la visibilità di alcuni elementi.

<body class="loading"> .... </body>

Quindi, quando lo script termina il caricamento, puoi rimuovere questa classe e mostrare tutto ciò di cui hai bisogno. Puoi persino utilizzare il " caricamento " classe per mostrare uno sfondo di fantasia, come un cerchio rotante di punti in Mozilla.

Inoltre, alcuni progetti utilizzano un altro metodo di caricamento degli script anziché "onLoad". Per prima cosa crei un array globale, diciamo, chiamato " domReady " ;.

window.domReady = [];

E quando è necessario aggiungere alcune funzioni che verranno eseguite al caricamento della pagina, è sufficiente inserirle in questo array:

window.domReady.push( function foo(){ alert('Hey!'); } );

E nell'ultima riga del documento hai messo la funzione che eseguirà tutte le procedure inviate:

for (procedure in window.domReady) {
    window.domReady[procedure].call();
}

Poiché sarà l'ultima riga del documento prima del tag di chiusura, il DOM sarà pronto e non dovrai aspettare fino a quando tutte le immagini non saranno caricate.

Altri suggerimenti

OK ho trovato questa piccola pepita di jquery che funziona a meraviglia:

$(document).ready(function() {
  //Call your function here
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top