Wenn sich der Javascript-Codeblock nicht am Ende der HTML-Datei befindet, sondern das $(document) von jQuery verwendet.ready(function() {...}), wird es die Seitenanzeige verlangsamen?

StackOverflow https://stackoverflow.com/questions/3294885

Frage

Es wird gesagt, dass der gesamte Javascript-Code am Ende der HTML-Datei platziert werden sollte, damit der Seiteninhalt zuerst angezeigt wird, damit der Benutzer etwas sehen kann (damit der Benutzer zufrieden ist, etwas zu sehen, anstatt weitere 12 Sekunden zu warten, zum Beispiel).

Um jedoch den HTML-Code besser zu kapseln und mit Javascript-Code übereinzustimmen, z. B. einem "Bildkarussell", werden HTML und Javascript normalerweise in einer einzigen Datei abgelegt, sodass in der gesamten endgültigen HTML-Datei Javascript-Codeblöcke mit HTML-Code vermischt sind Datei.

Aber was ist, wenn all diese Javascript-Codeblöcke jQuery verwenden $(document).ready(function() { ... }) um die Aufgabe auszuführen, wird dann die Seitenanzeige nicht auch sehr schnell sein?Ich denke nicht so schnell wie wenn das Javascript tatsächlich am Ende der HTML-Datei platziert wird, aber nahe genug, weil es lediglich eine Funktion zur Warteschlange für fertige Ereignisse hinzufügt.

War es hilfreich?

Lösung

Ich denke, der Punkt ist, das js am unteren Rand der Seite zu platzieren (normalerweise nur innerhalb des Schließens </body> tag), so dass der Inhalt der Seite angezeigt wird, während der js ist Downloading.

Wenn Sie Ihren jQuery-Code separat im HTML-Code verteilt haben .ready() anrufe, dann egal was passiert, es wird nicht laufen, bis die <body> hat voll geladen.Die Frage wäre also, wie viel Javascript Sie im HTML haben?

Wenn es ziemlich viel gibt, wird die Anzeige von Inhalten, die nach jedem Skript angezeigt werden, verlangsamt.Wenn es sich um eine relativ kleine Menge Code handelt, wird es wahrscheinlich keinen großen Unterschied machen.

Wenn es Ihnen wirklich wichtig ist, den Inhalt der Seite so schnell wie möglich anzuzeigen, dann platzieren Sie alle Skripte nach Inhalt.

Ich persönlich würde Javascript nicht nur aus Gründen der Assoziation mit HTML mischen.Sie könnten unerwartete Ergebnisse haben, wenn Sie anfangen, Inhalte zu entfernen / anzuhängen, die zufällig ein Skript enthalten.Ich würde lieber entsprechend benannte Klassen und IDs sowie viele Codekommentare verwenden.

Denken Sie auch daran, dass diese .ready() anrufe funktionieren erst, wenn jQuery geladen hat, was bedeuten würde, dass es oben auf der Seite oder zumindest vor Ihrem ersten Anruf sein müsste.

Es kommt also wieder auf die Frage zurück, was für Sie wichtiger ist.Wenn Sie möchten, dass der Inhalt so schnell wie möglich sichtbar ist, platzieren Sie alle js unten.Wenn Sie Ihre Methode zum Mischen von js und HTML verwenden möchten, wird die Anzeige der Seite etwas verzögert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top