Wie kann man JavaScript-Code in mehrere Dateien aufteilen und ohne HTML-Tags verwenden?

9

Ich verwende ausgiebig Konstruktoren (Klassen) und möchte, dass sich jeder Konstruktor in einer separaten Datei befindet (so etwas wie Java). Angenommen, ich habe Konstruktoren sagen Class1, Class2, ... Class10 und ich möchte nur Class1 und Class5 verwenden Ich brauche Skript-Tags, um Class1.js und Class2.js in die HTML-Seite aufzunehmen. Später, wenn ich auch Class3 und Class6 verwenden muss, muss ich erneut auf die HTML-Seite gehen und Skript-Tags für sie hinzufügen. Wartung mit diesem Ansatz ist zu schlecht.

Gibt es etwas in JavaScript, das der Direktive von C ähnlich ist? Wenn nicht, gibt es eine Möglichkeit, dieses Verhalten zu emulieren?

    
Cracker 03.06.2011, 12:08
quelle

6 Antworten

2

Sie können jQuery.getScript verwenden:

Ссылка

Oder eines der vielen JavaScript-Loader wie YUI, JSLoader usw. Siehe Vergleich hier:

Ссылка

    
Milimetric 03.06.2011, 12:17
quelle
1

Sie können etwas wie folgt verwenden:

%Vor%

verwende es dann in deinem Code wie:

%Vor%

Seien Sie vorsichtig, wenn Sie das head bereits im DOM verwenden, sonst funktioniert es nicht.

    
aorcsik 03.06.2011 12:13
quelle
1

Ja: Sie können script -Tags von JavaScript erstellen und benötigte Klassen bei Bedarf laden.

Sehen Sie hier ein paar Lösungen: Ссылка

Bei sorgfältiger Verwendung von id -Attributen oder einer globalen Variable, die "bereits geladene" Skripte enthält, sollte es möglich sein, ein Abhängigkeitsauflösungs-Framework für JavaScript wie Maven oder OSGi für Java zu entwickeln.

    
Aaron Digulla 03.06.2011 12:16
quelle
1

Wenn wir über JavaScript sprechen, denke ich, dass es besser ist, eine Datei einzuschließen, die alles enthält, was Sie brauchen, anstatt jedes Mal eine neue Datei anzufordern, wenn Sie etwas brauchen, auf das Sie derzeit keinen Zugriff haben.

Jedes Mal, wenn Sie für eine andere Datei senden, wird der Browser viele Dinge tun. Es prüft, ob die angeforderte Datei tatsächlich gefunden werden kann, indem ein HTTPRequest gesendet wird, und wenn der Browser dies bereits gesehen hat, wird er zwischengespeichert und unverändert?

Was Sie tun möchten, ist nicht im Sinne von JavaScript. Wenn Sie das ausführen, was Sie erklären, werden zusätzliche Ladezeiten erzeugt, und Sie können nichts mehr tun, bis die Datei vollständig geladen ist, wodurch Wartezeiten entstehen.

Es wäre besser, eine Datei dafür zu verwenden, die am inneren Ende des </body -Tags eingefügt wird (was nicht dazu führt, dass der Browser wartet, bis das Skript zum Laden der Seite fertig ist), und dann ein einfaches erstellen Funktion, die ausgeführt wird, wenn die Seite vollständig geladen ist.

Zum Beispiel:

%Vor%     
Shaz 03.06.2011 12:30
quelle
0

Sie können eine js-Datei in eine andere js-Datei einfügen, indem Sie so etwas am Anfang Ihrer js-Datei machen:

%Vor%     
Ma99uS 03.06.2011 12:14
quelle
0

Der beste Ansatz in Ihrer Situation ist die Verwendung eines Compilers. Der größte ist der Google Closure Compiler. Dies ist Teil von Google Closure Libraty, dessen Struktur der von Ihnen beschriebenen entspricht.

    
bjornd 03.06.2011 12:18
quelle

Tags und Links