Javascript: body onload-Funktion warten Sie, bis Skripts abgeschlossen haben
Ich habe einige Funktionen, die ich rufe, und Sie nehmen einige Zeit (Millisekunden), aber ich will nicht die Seite angezeigt, bis diese Funktionen abgeschlossen haben. Gerade jetzt, kann ich sagen, dass die Seite geladen wird und dann die Skripte schließlich abgeschlossen.
Recht jetzt rufe ich die Funktionen in den body onload.
Zudem eine weitere Frage, die ich vielleicht habe, ist, dass ich brauche, um Zugriff auf div-Elemente in die html-Inhalte kann ich tun, dass in meinem body onload-Funktion (getElementById('somDiv')?
Hier ist der workflow.
- Einem Aufruf von getElementById('someDiv'), um ein element aus der Seite.
- Aufrufen der Funktion someFunc, ist diese Funktion in den body onload=someFunc()
- Warten, bis someFunc fertig ist
- Display-Seite um Benutzer, sobald die Funktion abgeschlossen ist.
InformationsquelleAutor Berlin Brown | 2009-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie tun können, ist, halten Sie den Inhalt Ihrer Seiten in einem
div
zunächst gestylt mitdisplay:none
. Dann, wenn Ihr javascript-code abgeschlossen ist, aktualisieren Sie den Stil auf diediv
zudisplay:block
, z.B.:Dann Bob ist dein Onkel: die Seite sieht aus wie es hat sich verzögert geladen wird, bis, nachdem Ihr Skript fertig ist.
InformationsquelleAutor Phil Booth
Funktionen, die aufgerufen werden, in der
<body>
tagonLoad
Ereignis nur ausgelöst, wenn der DOM geladen ist (jedoch nicht warten, für externe Abhängigkeiten, wie JavaScript-Dateien und CSS zu laden), so können Sie sicher sein, dass, wenn IhrsomeFunc()
Funktion aufgerufen wird, (wenn angebracht, um die<body>
tagonLoad
Fall) Elemente der Seite geladen wurden. Wenn Sie Zugriff auf ein DIV geladen wird, in die Seite, dann können Sie sicher sein, dass es geladen wird, wenn IhrsomeFunc()
- Funktion aufgerufen wird.Um Ihr problem zu lösen Sie wickeln konnte dann die Inhalte der Seite in einem DIV, mit der
display
es sich zunächst umnone
. Dann wenn die Seite geladen wurde, IhresomeFunc()
- Funktion aufgerufen wird. Wenn es die Ausführung beendet hat, können Sie diedisplay
Ihre wrapper-DIV umblock
, so dass es für den Benutzer sichtbar ist.Jedoch, stellen Sie sicher, dass der Benutzer bewusst, dass die Seite geladen wird, und Sie nicht nur zeigen Sie einen leeren Bildschirm, während Ihr JavaScript geladen wird.
InformationsquelleAutor Alex Rozanski
Der body onLoad-Funktion wird ausgelöst, wenn der DOM geladen wurde - was bedeutet, dass alle HTML-Elemente vollständig geladen. Also deine onload-Funktion selbst sollte davon ausgehen, dass alles geladen ist und bereit zu gehen, da seine Ausführung ist unter diesen Leitlinien.
InformationsquelleAutor Cody Caughlan