2009-02-25 8 views

Antwort

10

Der einzige Nachteil, den ich kenne, ist die zusätzliche HTTP-Anfrage benötigt. Dieser Nachteil verschwindet, sobald das Javascript auf zwei Seiten verwendet wird oder die Seite von demselben Benutzer neu geladen wird.

2

Bitten Sie sie, "play nice" zu definieren. Abgesehen von einer besseren logischen Organisation müssen externe js-Dateien nicht übertragen werden, wenn sie bereits zwischengespeichert sind.

Wir verwenden YUI compressor, um externe Skripts beim Erstellen von Produktions-/Staging-Builds automatisch zu minimieren und zu kombinieren.

5

Eine Konsequenz ist, dass der Browser das JS nicht zwischenspeichern kann, wenn es auf der Seite ist. Wenn Sie es extern referenzieren, speichert der Browser diese Datei und lädt sie nicht jedes Mal neu, wenn Sie auf eine Seite klicken. Wenn es eingebettet ist, wird es einfach zur Dateigröße jeder Seite hinzugefügt.

Auch Wartbarkeit ist etwas zu beachten. Wenn es JS ist, wird es ein bisschen mühsam sein, eine Änderung vorzunehmen, wenn Sie die X-Anzahl der Skriptblöcke der HTML-Dateien anstelle einer JS-Datei aktualisieren müssen.

Persönlich habe ich noch nie ein Problem mit externen Dateien vs eingebettet. Die einzige Zeit, in der ich JS im HTML selbst habe, ist, wenn ich etwas zum Laden von Dokumenten speziell für diese Seite binden muss.

1

Der einzige Nachteil, den ich kenne, ist, dass eine andere Anfrage an den Server gestellt werden muss, um die externe JS-Datei abzurufen. Wie gesagt, können Sie Tools wie YUI-Kompressor verwenden, um die Auswirkungen zu minimieren.

Der Vorteil wäre jedoch, dass Sie alle Ihre JS-Code in einem separaten wartungsfreundlicheren Format behalten können.

1

Ein weiterer großer Vorteil für externe Javascript ist die Möglichkeit, Ihre Syntax mit Jslint zu überprüfen. Das, zusätzlich zur Fähigkeit, externe Skripte zu minimieren, zu kombinieren und zwischenzuspeichern, lässt internes Javascript als eine schlechte Wahl erscheinen.

3

Caching ist sowohl ein Profi als auch potenziell ein Betrug, wenn Sie es nicht richtig behandeln.

Die pro ist offensichtlich, da es das Laden der Seite bei jedem Laden der Seite nach dem ersten verbessert.

Die con ist, dass, wenn Sie neuen Code freigeben, möglicherweise noch vom Browser des Benutzers zwischengespeichert wird, damit sie das Update möglicherweise nicht erhalten. Dies kann leicht gelöst werden, indem Sie den Namen Ihrer js-Datei ändern. Wir versionieren unsere js automatisch mit dem Zeitstempel der Datei und stellen dann sicher, dass sie auf die Erstellungsdatei in der Webanfrage durch Konfiguration auf unserem Webserver verweist (mod_rewrite, Apache).

Verwandte Themen