2012-06-28 29 views
8

Eventuali duplicati:
How to include js file in another js file?Come importare/includere i file sorgente in JavaScript?

Supponiamo che io sono un paio di file di origine JavaScript: a.js, a1.js e a2.js. Le funzioni di a.js richiamano le funzioni da a1.js e a2.js.

Ora devo dichiarare tutti i file nella mia pagina HTML. Desidero dichiarare solo a.js nell'HTML e "importare/includere" a1.js e a2.js nel file di origine a.js.

Ha senso? Posso farlo in JavaScript?

+1

Per fare questo è necessario utilizzare uno strumento come [require.js] (http://requirejs.org/), o concatenare i file js (e ridurli nella stessa mossa, ad esempio usando il [compiler chiusura] (https://developers.google.com/ chiusura/compilatore /)). Non è possibile specificare le importazioni in vanilla javascript. –

+0

@devsundar perché non hai chiesto la chiusura come duplicato? –

+0

@dystroy Grazie per il suggerimento. Inizialmente cercavo un'opzione da chiudere. L'ho fatto ora usando l'opzione "flag". Non era intuitivo per me ... – 18bytes

risposta

8

Non è possibile specificare le importazioni in vanilla javascript.

così il vostro soluzioni (esclusi framework lato server pesante) sono:

  • semplicemente le importazioni

  • concatenare i file js (e minify nella stessa mossa, per exemple utilizzando il closure compiler)

  • utilizzare un modulo itool avere require.js

Se non si è esperti e se il numero di file è basso (meno di 15), si consiglia di scegliere semplicemente la prima o la seconda soluzione. L'uso di un caricatore di moduli può avere effetti collaterali che non si desidera eseguire il debug quando si inizia a imparare javascript.

2

È possibile unire insieme file JavaScript (e anche CSS) utilizzando determinati strumenti per ridurre il numero di file che è necessario includere. Ciò aumenta anche le prestazioni di caricamento della pagina.

Questi strumenti combinano più file JavaScript in un singolo file JavaScript (opzionalmente riducendo anche i file) e più file CSS in un singolo file CSS. Ciò si traduce in un minor numero di connessioni HTTP dal browser al server, quindi ci sono meno cose da recuperare in serie.

ASP.Net MVC 4 è dotato di supporto per questo:

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

Ci sono una serie di soluzioni per altri ambienti così come Juicer.

Se non è possibile raggruppare tutte le risorse (alcune derivano da un CDN mentre altre sono servite localmente), è possibile utilizzare un gestore di carico come require.js.

6

È possibile importare:

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

se si vuole farlo direttamente dalla JS, è possibile utilizzare Ajax, questo post spiega come: include-javascript-file-inside-javascript-file

+1

Ciò non aiuta con l'importazione di un modulo specifico da una libreria. – shinzou

Problemi correlati