2012-06-28 8 views
8

Mögliche Duplizieren:
How to include js file in another js file?Wie importiere ich Quelldateien in JavaScript?

nehme ich ein paar JavaScript-Quelldateien haben: a.js, a1.js und a2.js. Funktionen von a.js rufen Funktionen von a1.js und a2.js auf.

Jetzt muss ich alle diese Dateien in meiner HTML-Seite erklären. Ich möchte nur a.js im HTML und "Import/include" a1.js und in der a.js Quelldatei deklarieren.

Macht es Sinn? Kann ich das in JavaScript machen?

+1

zu tun, dass Sie ein Werkzeug verwenden müssen wie [require.js] (http://requirejs.org/), oder verkette deine js-Dateien (und reduziere sie im selben Zug, zum Beispiel mit dem [closure compiler] (https://developers.google.com/) Schließung/Compiler /)). Sie können keine Importe in Vanille-Javascript angeben. –

+0

@devsundar Warum hast du nicht nach einem Duplikat gefragt? –

+0

@dystroy Danke für den Vorschlag. Anfangs war ich auf der Suche nach einer Option zum Schließen. Ich habe es jetzt mit der Option "Flagge" gemacht. Es war nicht intuitiv für mich ... – 18bytes

Antwort

8

Sie können keine Importe in Vanille-Javascript angeben.

So Ihre Lösungen (ohne schwere serverseitige Frameworks) sind:

  • einfach tun die Importe

  • Ihre js Dateien verketten (und sie im gleichen Zug minify, für exemple die closure compiler mit

    )
  • ein Modul verwenden iTool mag require.js

Solange Sie nicht erfahren sind, und wenn Ihre Anzahl der Dateien niedrig ist (weniger als 15), empfehle ich, einfach die erste oder zweite Lösung zu wählen. Das Verwenden eines Modulladeprogramms kann Nebenwirkungen haben, die Sie nicht debuggen möchten, wenn Sie JavaScript lernen.

2

Sie können JavaScript- (und auch CSS-) Dateien mithilfe bestimmter Tools bündeln, um die Anzahl der Dateien zu reduzieren, die Sie enthalten müssen. Dies erhöht auch die Seitenlade-Leistung.

Diese Tools kombinieren mehrere JavaScript-Dateien in einer einzigen JavaScript-Datei (optional werden die Dateien auch verkleinert) und mehrere CSS-Dateien in einer einzigen CSS-Datei. Dies führt zu weniger HTTP-Verbindungen vom Browser zum Server, so dass weniger Dinge seriell abgerufen werden müssen.

ASP.Net MVC 4 hat eine eingebaute Unterstützung für diese:

http://theshravan.net/bundling-and-minification-support-in-asp-net-mvc-4/

Es gibt eine Reihe von Lösungen für andere Umgebungen sind ebenso wie Juicer.

Wenn Sie nicht alle Ressourcen bündeln können (möglicherweise stammen einige von einem CDN, während andere lokal bereitgestellt werden), können Sie einen Lastmanager wie require.js verwenden.

6

Sie importieren:

<script type="text/javascript"src="a1.js"></script> 
<script type="text/javascript"src="a2.js"></script> 
<script type="text/javascript"src="a3.js"></script> 

, wenn Sie es direkt von der JS tun möchten, können Sie Ajax verwenden, dieser Beitrag wird erklärt, wie: include-javascript-file-inside-javascript-file

+1

Dies hilft nicht beim Importieren eines bestimmten Moduls aus einer Bibliothek. – shinzou