Was ist eigentlich genau der Unterschied?
heinetz
- javascript
Hallo Forum,
gibt es eigentlich einen Unterschied, ob ich Javascript-Anweisungen direkt im HTML-Code im <head> oder <body>
definieren oder diese in eine externe Datei auslagere ?
beste gruesse,
heinetz
Lieber heinetz,
gibt es eigentlich einen Unterschied, ob ich Javascript-Anweisungen direkt im HTML-Code im <head> oder <body>
definieren oder diese in eine externe Datei auslagere ?
ja. Warum willst Du das wissen?
Liebe Grüße,
Felix Riesterer.
Hallo Felix,
ja. Warum willst Du das wissen?
Weil ich bei einem seit zwei Jahren laufenden TinyMCE(2.x)
-basierten Eigenbau-CMS gerade mit einem ominösen "Objekt erforderlich" seitens des IE6 konfroniert wurde. Meine
Interpretation dieser IE-Fehlermeldung war, dass irgendetwas
noch fertig geladen war. Deshalb habe ich meinen Hang alles
auszulagern mal grundsätzlich hinterfragt.
Ich bin mittlerweile dazu gekommen, dass meine Interpretation
Quatsch sein muss und gehe davon aus, dass dieser Fehler (beim
Abspeichern des Editorinhalts) garnicht neu ist, sondern ich
ihn nur nie bemerkt habe und er mir jetzt auffällt.
meine Lösung sieht jedenfalls so aus, dass ich den Editor
sowie dessen Einbindung neu machen will. Desahlb frage ich.
beste gruesse,
heinetz
-basierten Eigenbau-CMS gerade mit einem ominösen "Objekt erforderlich" seitens des IE6 konfroniert wurde.
ominös ist richtig, der IE drückt damit alles mögliche aus.
z.b. kann ist es auch ein Probelm für den IE, wenn die Kodierungen des Quellcodes unterschiedlich ist und du Sonderzeichen im JS Code verwendest.
Struppi.
gibt es eigentlich einen Unterschied, ob ich Javascript-Anweisungen direkt im HTML-Code im <head> oder <body>
definieren oder diese in eine externe Datei auslagere ?
Mehr als einen.
Versuche selber, die Unterschiede aufzuzählen, die dir selber ohne spezifische JS-Kenntnisse einleuchten sollten.
mfg Beat
@@heinetz:
nuqneH
gibt es eigentlich einen Unterschied, ob ich Javascript-Anweisungen direkt im HTML-Code im <head> oder <body>
definieren oder diese in eine externe Datei auslagere ?
Bzgl. extern oder nicht gilt das in Stylesheet extern oder nicht Gesagte.
Wo das JavaScript im HTML eingebunden wird, ist für die Performanz der Seite wichtig.
Und ein Script darf natürlich nicht versuchen auf Elemente zuzugreifen, die noch gar nicht im DOM sind.
Qapla'
Hi,
zunächst mal danke für die Infos!
Konkrete Frage:
Wird ein im head definiertes externes Script erst vollständig
gelesen bevor der Browser "weiterliest". Sprich: Kann ich im
Body sicher davon ausgehen, dass das Script vollständig
geladen worden ist?
beste gruesse,
heinetz
Wird ein im head definiertes externes Script erst vollständig
gelesen bevor der Browser "weiterliest". Sprich: Kann ich im
Body sicher davon ausgehen, dass das Script vollständig
geladen worden ist?
Im Gegenteil.
Du kannst davon ausgehen, dass der body voll vorhanden ist, bevor tatoo.js die Zehennägel lackiert.
mfg Beat
Du kannst davon ausgehen, dass der body voll vorhanden ist, bevor tatoo.js die Zehennägel lackiert.
Ich habe keine Ahnung, was du damit sagen wolltest, aber ja, man kann 100%-ig davon ausgehen, dass ein im head definiertes externes Script vollständig
gelesen und abgearbeitet ist, bevor der Browser weitere Scripts im Head abarbeitet oder im Body Elemente in den DOM-Tree packt.
@@unknown:
nuqneH
man kann 100%-ig davon ausgehen, dass ein im head definiertes externes Script vollständig gelesen und abgearbeitet ist, bevor der Browser weitere Scripts im Head abarbeitet […]
Ja. Scripte werden in der Reihenfolge ihres Auftretens im Quelltextes abgerbeitet. Ist das zweite eher als das erste fertig geladen, wird es dennoch erst gestartet, nachdem das erste fertig geladen und ausgeführt wurde.
man kann 100%-ig davon ausgehen, dass ein im head definiertes externes Script vollständig gelesen und abgearbeitet ist, bevor der Browser […] im Body Elemente in den DOM-Tree packt.
Nein, auf gar keinen Fall. Der Browser ertsellt das DOM unabhängig von JavaScripten im 'head'. Auch deshalb JavaScripte als leztes im 'body' notieren. (Das erspart 'window.onload' und das Warten auf dessen Eintreffen.)
Qapla'
\//
Nein, auf gar keinen Fall. Der Browser ertsellt das DOM unabhängig von JavaScripten im 'head'.
OK, 100%-tig ist es nicht, da habe ich zu hoch gegriffen. Man könnte auch bis zum 1. Script-Tag im body den DOM-Tree schon mal aufbauen.
Da aber kein mir bekannter Browser dies macht, würde mich mal interessieren, wie du dein "Nein, auf gar keinen Fall" begründest.
Auch deshalb JavaScripte als leztes im 'body' notieren.
Scripte als leztes im body entsprechen ja domready und nicht onload. Also der DOM-Tree ist fertig, aber es ist noch nicht alles geladen.
(Das erspart 'window.onload' und das Warten auf dessen Eintreffen.)
Was willst du damit sagen?
Also, man kann das eigentlich weder bejahen nocht verneinen, da es keinen vorgeschriebenen Standard gibt, die gängigen Browser machen es aber so wie weiter oben beschrieben.
\//
Auch deshalb JavaScripte als leztes im 'body' notieren. (Das erspart 'window.onload' und das Warten auf dessen Eintreffen.)
Ach, jetzt habe ich dich verstanden, du meinst eigentlich das gleiche wie ich. Scripte als leztes im body müssen nicht erst auf das Laden aller Elemente im body warten.
Das trifft aber nicht für Scripte zu. Die sind zu diesem Zeitpunkt alle abgearbeitet.