Problem:
Ein Skript, das mit $ ausgeführt wird (document).ready() verursacht Probleme mit der vertikalen Ausrichtung von Blockelementen. Es kommt auf mysteriöse Weise zu Verzögerungen oder zu einer Fehlausrichtung der Elemente.
Frage:
Ist es möglich, dass bei der Ausführung eines Skripts im DOM-ready-Modus nicht alle korrekten CSS-Werte eingefügt werden? Die DOM?
Antwort:
Laut den Versionshinweisen zu jQuery 1.3:
„Die Methode ready() versucht nicht mehr, Garantien dafür zu geben Warten auf das Laden aller Stylesheets. Stattdessen sollten alle CSS-Dateien vor den Skripten auf der Seite eingebunden werden dass es wichtig ist, alle CSS-Dateien in den einzubinden. Abschnitt mit Elemente vor dem Laden von Skripten. Andernfalls kann es zu unvorhersehbarem Verhalten kommen, insbesondere in WebKit-basierten Browsern wie Safari.
Unerwartet kann es sein, dass das Problem durch die Platzierung des CSS über den Skripten nicht vollständig gelöst wird. CSS wird asynchron heruntergeladen, sodass der JS-Ladevorgang gestartet und abgeschlossen werden kann, selbst während CSS heruntergeladen wird.
Experimente mit dem cuzillion.com-Skript von Steve Souders zeigen, dass die JS-Ausführung manchmal verzögert wird, bis CSS geladen wird, obwohl Wasserfallbeweise JS belegen Fertigstellung vor Abschluss des CSS-Downloads.
Weitere Tests deuten jedoch darauf hin, dass die Regel, JS anzuhalten, bis früher definiertes CSS angehalten wird, nicht universell ist. Es scheint eine Interaktion zwischen externen JS- und CSS-Ladesequenzen zu geben.
Zusammenfassend lässt sich sagen, dass es am besten ist, alle CSS-Dateien vor allen Skripten auf der Seite einzuschließen, um Inkonsistenzen zu vermeiden und einen zuverlässigen Betrieb Ihres Skripts sicherzustellen, wie empfohlen in der jQuery-Dokumentation.
Das obige ist der detaillierte Inhalt vonGarantiert „$(document).ready()' tatsächlich, dass CSS vollständig geladen und angewendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!