it-swarm.it

Come posso ridurre i costi di caricamento di grandi librerie JS?

Se sto usando una grande libreria Javascript per la mia pagina, come posso assicurarmi che ciò non pregiudichi l'uso del sito da parte dell'utente?

23
Macha

Ci sono 4 cose che puoi fare.

  1. Minimizza il tuo file JS. Ciò rimuove tutti i commenti e gli spazi bianchi per ridurne le dimensioni.
  2. Combina i tuoi file JS su ogni pagina in modo che ci sia solo 1 file.
  3. Usa un pacchetto per gzip i tuoi file quando li invii. Questo li renderà ancora più piccoli
  4. Inserisci Javascript che non è necessario immediatamente nella parte inferiore della pagina in modo che venga caricato alla fine. Ciò consentirà all'utente di visualizzare e utilizzare la pagina anche prima che JS sia completamente caricato.

E alcune altre persone hanno suggerito:

  • Apache gestirà automaticamente la compressione (e la memorizzazione nella cache del contenuto compresso) che semplifica enormemente la gestione dei file
  • Rendere JavaScript correttamente in grado di memorizzare nella cache produrrà grandi vantaggi.
  • I domini jolly (con più URI) consentiranno più connessioni simultanee. Il pre-recupero non è solo per le immagini /
25
Ben Hoffman

Se si utilizzano librerie comuni (come jQuery, Prototype o Dojo), è possibile scaricare il file su Google e renderle servirlo , questo offre numerosi vantaggi:

  • Non devi preoccuparti di minimizzare, zippare ecc
  • Non è la tua larghezza di banda
  • Questi file provengono da un dominio diverso, quindi puoi (almeno parzialmente) aggirare il limite di 2 richieste parallele per nome host
  • Se sei fortunato, l'utente ha già visitato qualche altro sito che ha utilizzato la stessa libreria dello stesso provider, quindi lo ha già nella cache del browser.

Nota: la versione richiesta può avere un grande impatto sulle caratteristiche di memorizzazione nella cache: la richiesta di jQuery 1.4.2 ti darà un file che può essere memorizzato nella cache per un anno, ma 1.4 può essere memorizzato nella cache solo per un'ora.

21
Cebjyre

È possibile inserire l'intera libreria in un file js e comprimere il file. Tuttavia, conta davvero solo per il primo caricamento di una pagina. Successivamente, il file js verrà memorizzato nella cache nel browser, in particolare se si imposta la scadenza della cache abbastanza a lungo. Quindi qualsiasi hit consecutivo non caricherà più il tuo file js.

6
txwikinger

Oltre alle risposte sopra, puoi utilizzare Google Closure Compiler per comprimere e ottimizzare automaticamente il tuo JS mentre si integra con altre librerie di terze parti (jQuery, YUI, mootools, ecc.)

4
theycallmemorty

Se disponi di numerosi elementi della pagina e accedi a un dominio separato, puoi considerare di ospitare tutti i file statici, incluso il file JS di grandi dimensioni sul secondo dominio.

Come osserva Steve Souders nel suo blog sui siti Web ad alte prestazioni -

... in alcune situazioni, vale la pena prendere un sacco di risorse che vengono scaricate su un singolo dominio e dividerle su più domini. Chiamo questo frammento di dominio. In questo modo è possibile scaricare più risorse in parallelo, riducendo il tempo complessivo di caricamento della pagina.

altrove scrive ..

I browser aprono un numero limitato di connessioni per dominio ... La suddivisione o condivisione delle richieste tra due domini, anziché un dominio, porta a una pagina più veloce, specialmente in IE 6 & 7

0
mvark