2009-12-23 13 views
14

Ho letto che l'unione di più file javascript in un singolo file migliora le prestazioni, è vero?Unione di più file javascript

Se è così, c'è un modo semplice e privo di errori di unirli, o forse uno strumento online che lo fa automaticamente?

Molte grazie.

+1

Non credo che per essere vero - un file js monolitico ci vorrà più tempo per scaricare, e di essere monolitico c'è il rischio che la pagina sta usando il 25% del js su di esso (o meno). –

+0

Dipende da quanti file. Come sottolineato dal commentatore precedente, inserire tutto il tuo file JS che viene caricato da tutte le pagine può comportare il caricamento di molti JS irrilevanti. Tuttavia, se si combinano 3 file in cui tutto il codice è stato spesso utilizzato in 1, si abbassa il numero di richieste HTTP per il caricamento della pagina e quindi si migliora la velocità di caricamento della pagina. – mopoke

+0

Il caricamento di più file invece di sinlge one è decisamente più lento perché il browser sta stabilendo una connessione http per caricare quei file e stabilire una connessione http ha un costo. – Nayan

risposta

16

Vedere Multiple javascript/css files: best practices? e Supercharging Javascript in PHP.

La risposta breve è che si desidera ridurre al minimo le richieste HTTP esterne. Il modo migliore per farlo è forzare il browser a memorizzare nella cache i file del tuo server fino a quando non cambiano. Lo fai eseguendo il controllo dei file e fornendo un'intestazione Expires di gran lunga futura. Quando il nome del file cambia (cambiando la versione) il browser otterrà la nuova versione.

Se si esegue questa operazione, più file Javascript non sono importanti. Ma se imponi al client di scaricare 27 file JS su ogni pagina senza cache, la riduzione del numero di file può fare una sostanziale differenza. Naturalmente questo è ancora inferiore alle efficaci strategie di caching/versioning.

Un altro problema più recente, da considerare è iphone caching:

iPhone non sarà componenti della cache più grande di 15K (era 25K nel precedente esperimento)

Quindi, in alcune circostanze, che conciliano file possono essere dannoso

+0

perché mentire al cliente "il migliore"? almeno Firefox richiede i file js, ecc. condizionatamente (con If-Modified-Since). non c'è bisogno di armeggiare con i nomi dei file. –

+0

Quando dici "file" riguardo alla memorizzazione nella cache, stai parlando di pagine Web, non di Javascript corretto? –

+0

No Intendo il contenuto statico in genere (Javascript, CSS, immagini).Quelli dovrebbero essere messi in cache aggressivamente. Chi ha detto qualcosa sul "mentire"? In pratica stai dicendo al cliente "Non chiedermelo più finché non ti dico che è cambiato". Quello è buono. – cletus

3

Se si dispone di molti file javascript, può essere utile combinarli e ridurli. Combinandoli in un unico file, riduci il numero di connessioni e file che devono essere scaricati dal tuo sito. Minimizzandoli, si riduce effettivamente la dimensione dei file rimuovendo lo spazio bianco, i commenti e così via. Dai un'occhiata a JSMin e YUI Compressor.

Modifica: Come altri commentatori indicano, la combinazione di file ha davvero senso solo se gli utenti utilizzano attivamente le funzionalità di tutti i file. Non avrebbe senso combinare un file javascript ampio e usato raramente con tutte le funzioni comunemente usate.

0

si può provare pakd.io è possibile unire file CSS e js