Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Wann wird document.ready ausgeführt?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
AGB
PostRank 5
PostRank 5
Beiträge: 205
Registriert: 28.11.2005, 15:23

Beitrag von AGB » 13.07.2010, 08:19

Hallo,
laut Doku wird der Event ausgeführt, wenn der Komplette DOM Baum geladen wurde. Also für mein Verständnis erst nach dem das schließende html Tag "da" ist.

Ich kann aber JavaScript schon vorher ausführen, z.B. im Head wie beim neuen Analytics Tracking snippet.

Ist das richtig?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

xlb
PostRank 5
PostRank 5
Beiträge: 282
Registriert: 13.08.2009, 21:11

Beitrag von xlb » 13.07.2010, 10:10

Olla ...

Du kannst JS grundsätzlich im "Head" und im "Body" ausführen.

Wenn gezielt (DOM-)Elemente der Seite manipuliert werden sollen, muss/sollte sichergestellt werden, dass diese bei Ausführung des entsprechenden JS auch vorhanden sind.

AGB
PostRank 5
PostRank 5
Beiträge: 205
Registriert: 28.11.2005, 15:23

Beitrag von AGB » 13.07.2010, 10:26

Es geht mir konkret um den Zeitpunkt des document.ready()
Nehmen wir an ich habe eine Ajax Funktion die Visits zählt. Wird sie bei document.ready() aufgerufen können theoretisch visits "verloren" gehen, weil die Seite lange lädt und der User schon auf die Hauptnavigation geklickt hat. Rufe ich gleich im Head auf, hat der User keine Chance vorher schon woanders zu klicken.
So weit meine Überlegung und wie ich das Analytics Ajax Tracking verstanden habe.

Das wollte ich mal von den Experten verifiziert haben.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


xlb
PostRank 5
PostRank 5
Beiträge: 282
Registriert: 13.08.2009, 21:11

Beitrag von xlb » 13.07.2010, 11:20

Wie sieht der Quellcode "deines" document.ready() aus?

Selbst gestrickte ready()-Funktionen/Events werden in der Regel getriggert, wenn das DOM (ergo das reine HTML-Markup) geladen ist. Anders, als z.B. das onload-Event, das erst eintritt, wenn zusätzlich alle Resouren komplett geladen sind.
.. weil die Seite lange lädt
Genau das soll durch .ready() kompensiert werden. Wenn selbst das zu lange dauert, hast du ein Performance-Problem.

AGB
PostRank 5
PostRank 5
Beiträge: 205
Registriert: 28.11.2005, 15:23

Beitrag von AGB » 13.07.2010, 11:53

Das sind noch Vorüberlegungen, deshalb habe ich noch keinen Code.
Wenn ich Dich richtig verstehe, triggert ready() quasi nach dem schließenden html Tag, egal ob noch andere Scripte oder Bilder geladen werden.

Kann es dann nicht trotzdem vorkommen, dass der User auf einen Menüpunkt klickt, bevor ready() ausgeführt wurde? Oder stellt der Browser das HTML erst da, wenn es komplett geladen wurde?

Sicherlich ist die Ladezeit des HTMLs nicht so dramatisch hoch, aber wenn das Script im Head mehr genauigkeit bietet, als beim document.ready() würde ich es dort einfügen. Ist halt schwierig zu testen.

DanielS
PostRank 9
PostRank 9
Beiträge: 1179
Registriert: 03.08.2008, 08:45

Beitrag von DanielS » 13.07.2010, 12:24

Steht ja eigentlich schon alles hier:
xlb hat geschrieben:Wenn gezielt (DOM-)Elemente der Seite manipuliert werden sollen, muss/sollte sichergestellt werden, dass diese bei Ausführung des entsprechenden JS auch vorhanden sind.
Wenn nicht, dann kannst Du Dein Skript auch in den Header packen.

xlb
PostRank 5
PostRank 5
Beiträge: 282
Registriert: 13.08.2009, 21:11

Beitrag von xlb » 13.07.2010, 12:37

... aber wenn das Script im Head mehr genauigkeit bietet, als beim document.ready() würde ich es dort einfügen.
Im Head würde es ggf. sofort ausgeführt, wenn der Browser beim Parsen des Codes dort "ankommt", ggf. also bevor das Menü überhaupt generiert wird.

ishmael
PostRank 4
PostRank 4
Beiträge: 101
Registriert: 18.04.2009, 09:59

Beitrag von ishmael » 13.07.2010, 19:09

AGB hat geschrieben: Kann es dann nicht trotzdem vorkommen, dass der User auf einen Menüpunkt klickt, bevor ready() ausgeführt wurde? Oder stellt der Browser das HTML erst da, wenn es komplett geladen wurde?
Ich nehme mal an es handelt sich um jQuery. In der Doku steht:
… Everything inside it (ready()) will load as soon as the DOM is loaded and before the page contents are loaded.
Bevor das DOM nicht steht, wird im Browser auch nichts angezeigt. Also sollte es nicht möglich sein, vorher per Link die Seite zu verlassen.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag