2013-07-31 7 views
5

Um die Anzahl der Anforderungen an meinen Server zu minimieren und Ladezeit zu verbessern, dachte ich über die Verkettung aller meiner JS-Dateien, einschließlich Hersteller js Dateien wie eckig, jquery- Ui, ... Es ist eine gängige Praxis, dies zu tun, aber ich sehe oft Websites, die nicht ihre JS-Dateien des Anbieters in der gleichen JS-Datei enthalten. Ich weiß, dass viele Websites CDNs verwenden, um eine zwischengespeicherte Version der JS-Datei wiederzuverwenden, die möglicherweise von einer anderen Seite verwendet wurde. Howewer, manchmal sind sie getrennte Anbieter JS-Dateien, die auf dem gleichen Server bedient werden, zum Beispiel auf Github:Gibt es irgendwelche Nachteile bei der Verkettung aller JavaScript-Dateien (einschließlich Hersteller)

Github

Github hat:

  • Frameworks.js, die enthält Modernizr, jQuery
  • github -... js, das den JS von Github selbst enthält.

Gibt es einen besonderen Grund, dies zu tun? Sind das irgendwelche Probleme, die auftreten können, weil Sie all Ihre JS-Dateien mit Concat versehen haben?

Antwort

3

Der Hauptgrund besteht darin, die Anzahl der HTTP-Anfragen zu minimieren. In einem größeren Projekt, wenn Sie ein Muster wie MV * verwenden, möchten Sie möglicherweise jedes Modul in einer externen .js-Datei abstrahieren. Dies kann zum Beispiel zu vielen Dateien 30-40 führen. In diesem Fall möchten Sie vielleicht in eine einzelne Datei konvertieren.

In einem kleineren Projekt, in dem Sie 3-4 js Datei haben werden, verwenden Sie dann ohne Verkettung. Ich verwende requirejs, um Module als AMD zu definieren und jedes Modul in einer externen Datei zu haben. Dann verwende ich requirejs Build-Skript, um Abhängigkeit und verkettete Deployment-Datei zu verwalten.

Gute Werkzeuge diesen Prozess

-1

Leistung zu automatisieren weise ist es nicht einen Unterschied machen würde. Wenn Sie genervt sind, wenn Sie eine separate Datei für all Ihre Frameworks haben, dann könnten Sie das tun. Andernfalls füllen Sie nur eine einzige Datei und haben möglicherweise Probleme, wenn Sie später versuchen, Frameworks zu aktualisieren.

2

Hängt davon ab, wie Ihre Anwendung ist. Hypothetisch, sagen Sie, wenn Sie 20 js Dateien von jeweils 0,5 MB haben. Davon sind nur 2 (1MB) auf der ersten Seite erforderlich. Vielleicht möchten Sie sie getrennt halten und andere kombinieren. Laden Sie die anderen im verzögerten Modus, während auf der ersten Seite. Das Kombinieren von Dateien ist also gut, wenn Sie verstehen, was alles zu kombinieren ist. Wenn Sie nur sehr wenige Dateien haben, macht das in der Regel keinen großen Unterschied.

einige der Dinge, die Sie über, bevor die Kombination von Javascript-Dateien denken sollte,

, wenn Sie zusammen 100 Dateien kombinieren. Sie reduzieren 99 Anfragen. Aber Sie tun auch Folgendes:
* die Zeit erhöhen, die es dauert, um diese einzelne Datei herunterzuladen (und kann das Laden einer wichtigen Seite blockiert werden)
* Konto für die Zeit in Parsing der zusätzlichen JS-Code, den wir nur verbringen gezogen vom Server, wenn es nicht einmal an dieser Stelle erforderlich sein könnte.Die Javascript Motoren werden immer schneller, aber es ist immer noch wahr, dass eine signifikante Menge an Zeit in der Analyse des Javascript-Codes verbracht wird.

so, kurz gesagt, die Antwort ist - „es ist immer ein Trade-off-Spiel und den Code zu wissen, hilft gut“ :)

http://tomdale.net/2012/01/amd-is-not-the-answer/ eine interessante Lektüre auf ähnliche Linien ist.