HTML-Elemente seit HTML5
bearbeitet von
Hallo
> > Wenn ich [die Beschreibung der genannten Attribute](http://wiki.selfhtml.org/wiki/Script) in der Doku betrachte, überschneiden und widersprechen sich deren Anwendungsgebiete *teilweise* miteinander und mit `DOMContentLoaded`.
> >
> > - async: Das Script wird ausgeführt, sobald es geladen ist.
> > - defer: Das (externe) Script wird erst ausgeführt, wenn die Seite geladen ist.
> >
> > Das Attribut `async` sorgt dafür, dass die Ausführung des Skripts erst dann beginnt, wenn es selbst *vollständig* geladen ist. Das Attribut `defer` hingegen startet die Ausführung, wenn das Dokument vollständig geladen ist. Die beiden Attribute sollten, wenn ich das richtig deute, nicht zusammen notiert werden, weil sich ihre Aussagen widersprechen. Andererseits scheint mit `defer` zum selben Zeitpunkt zuzuschlagen, wenn `DOMContentLoaded` auslösen würde, falls `script` ohne das Attribut `defer` notiert ist. Oder liege ich damit falsch?
>
> Woraus schließt Du jetzt, dass sich die Attribute widersprechen?
Mit dem einen Attribut rennt das Skript los, sobald es geladen ist, egal, ob das Dokument bereits geladen ist, mit dem anderen Attribut wartet es definitiv, bis das Dokument geladen wurde. Das ist mMn ein Widerspruch.
> Steht das so in der Spezifikation, dass sie nicht gemeinsam verwendet werden dürfen?
Kann ich mir nicht vorstellen, auch wenn ich es (so kurz vor Feierabend) nicht nachgeschlagen habe. Wären es zwei sich ausschließende Angaben, würde ich sie als zwei Werte eines gemeinsamen Attributs definieren.
> Ich würde das sonst so verstehen, dass sie beide gemeinsam dann dafür sorgen, dass sowohl Script als auch Content geladen sein müssen, damit die Interpretation und Ausführung des Scriptes (der Scripte?) vorgenommen wird.
Ja, auch nach meinem Dafürhalten stellen beide Attribute bei gemeinsamer Verwendung sicher, dass **sowohl** das Skript, als auch das Dokument geladen ist, aber das riecht mir irgendwie komisch.
> Das würde mir ersparen, einen eigenen Eventlistener dafür einrichten zu müssen und in jeder dämlichen Funktion bzw. Anweisung noch das Semaphor abfragen zu müssen.
Hmm. Für sich aus der Bedienung der Seite ergebende Aufrufe brauche ich die Listener sowieso. Für allgemeine Skripte, die im Dokument ständig laufen, brauche ich nur einen weiteren Eventlistener. Der macht den Kohl auch nicht fett.
> Nur was passiert in Browsern, die HTML5 noch nicht interpretieren wollen?
Da issa wieder, der Eventlistener. :-)
Tschö, Auge
--
Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
Terry Pratchett, „Gevatter Tod“