Benutzer:Melancholie/onloadEvents - Alemannische Wikipedia

# Benutzer:Melancholie/onloadEvents

### Us der alemannische Wikipedia, der freie Dialäkt-Enzyklopedy

< Benutzer:Melancholie

In Sachen Event-Handler:

Nach ausgiebigem Testen konnte ich folgende Einteilung vornehmen:

## [ändere] Nr. 1

Der wohl beste Onload-Event-Handler ist `addOnloadHook(func);` (= `var onloadFuncts = [func];` bzw. `onloadFuncts[onloadFuncts.length] = func;`)

- Vorteil: Setzt ein wenn Quelltext geladen, wartet nicht bis Bilder geladen, also der schnellste Event-Handler; wenn einmal im Zw.speicher dann sogar noch schneller.
- Grund: Wird im HTML durch `runOnloadHook();` aufgerufen.
- Nachteil: So schnell, dass vorheriges `getElementById`, etc. noch nicht ausgeführt, falls davon abhängig also nicht gut; durch die außerordentliche Schnelligkeit könnte beim IE4.0 trotzdem ein innerHTML-Laufzeitfehler auftreten (bei 1 bis 3 ‰ der Besucher würde also ein gelbes Warnsymbölchen in der Statusleiste aufleuchten ;-).

## [ändere] Nr. 2

Der zweitbeste Onload-Event-Handler ist `hookEvent("load", func);` (= `addLoadEvent(func);` bzw. `aOnloadFunctions[aOnloadFunctions.length] = func;`) oder einmalig `window.onload = function xy() {}`.

- Vorteil: Zuverlässiger als Nr. 3 (eben ein Event-Handler); DOM-Syntax?
- Nachteil: Setzt erst ein wenn Bilder geladen.

## [ändere] Nr. 3

Das drittbeste Onload-Event-Handling (ist eigentlich keines, da nicht geregelt ablaufend) ist `func();` bzw. der völlige Verzicht auf `function xy() {}`.

- Vorteil: Skriptinhalt wird sofort ausgeführt, Text sofort eingebaut sobald entsprechende Stelle geladen.
- Nachteil: Vor allem bei größeren Seiten eher unzuverlässig, bei sehr großen Seiten tut sich also nichts (z.B. im Firefox); setAttribute macht damit z.B. Probleme.

Rangordnung (später ist stärker):

- 1.1.: `aOnloadFunctions[aOnloadFunctions.length] = func;`
- 1.2a.: `window.onload = function xy() {}`
- 1.2b.: `hookEvent("load", func);`
- 2a.: `addOnloadHook(func);`
- 2b.: `var onloadFuncts = [func];` bzw. `onloadFuncts[onloadFuncts.length] = func;`
- 3a.: `func();`
- 3b.: `function xy() {}`

Kombinationen (Mutter - Kind):

- 1 - 1
- 1 - 2
- 1 - 3
- 2 - 1
- 2 - 2
- 2 - 3
- 3 - 1
- 3 - 2
- 3 - 3

- Ebenfalls möglicher Syntax: `addOnloadHook(function () {});`

Vun "http://als.wikipedia.org../../../m/e/l/Benutzer%7EMelancholie_onloadEvents_5491.html"

##### Views

- Benutzersyte
- Diskussion
- Itzigi Version

##### Mitarbeit

- Wikipedia-Portal
- Artikel wo fähle

##### Hilf

- Froge?
- Stammtisch
- Finanzielli Hilf

##### Suech