Devo raggruppare tutti i miei file .js in un unico grande pacchetto?

7

Una delle difficoltà che sto incontrando con il mio progetto attuale è che lo sviluppatore precedente ha ridotto il codice javascript in molti file diversi. Abbiamo finestre di dialogo modali che vengono riutilizzate in luoghi diversi e trovo che lo stesso file .js venga spesso caricato due volte.

Il mio pensiero è che mi piacerebbe solo caricare tutti i file .js in _Layout.cshtml, e in questo modo so che viene caricato una volta sola. Inoltre, il client dovrebbe solo scaricare questo file una volta. Dovrebbe essere memorizzato nella cache e quindi non dovrebbe essere un vero colpo di performance, tranne che per il caricamento della prima pagina.

Probabilmente dovrei notare che sto utilizzando anche il bundle ASP.Net e il caricamento della maggior parte del jQuery / bootstrap / etc da CDN.

C'è qualcos'altro che non sto pensando che potrebbe causare problemi qui? Dovrei raggruppare tutto in un unico file?

    
posta Scottie 14.07.2014 - 23:51
fonte

2 risposte

3

A seconda delle dimensioni dell'applicazione, potrebbe essere utile modificare la tua app per utilizzare i moduli con un caricatore AMD , come RequireJS .

Spostando il tuo codice in moduli separati e lasciando che un caricatore AMD gestisca le dipendenze, il tuo codice dovrebbe diventare più organizzato e impedire che tu debba caricare manualmente i file. Puoi usare questo per i file che sono ospitati sul tuo server, così come i file che vengono serviti da un CDN.

Inoltre, ecco un articolo che spiega come usare RequireJS con un'app ASP.NET:

risposta data 21.07.2014 - 23:47
fonte
1

Gli unici aspetti negativi di raggruppare tutto il tuo JS in un file che posso pensare sono:

  1. Alcuni dei tuoi file potrebbero non "giocare bene" insieme. Ad esempio, se a un file manca un punto e virgola alla fine, unire un altro file alla fine potrebbe rompere le cose. Mi è successo più di una volta.

  2. Alcuni file potrebbero dipendere dall'essere in un determinato percorso e il tuo unico bundle può trovarsi solo nello stesso punto. Potrebbe essere necessario spostare un gruppo di immagini o file CSS o modificare i file JS in modo che i relativi percorsi siano corretti.

  3. Potrebbero esserci librerie in conflitto (forse una pagina usa jquery 1.7 e un'altra 1.10)

  4. La modifica di un file comporterà la rigenerazione dell'intero pacchetto con un nuovo URL.

  5. Un download iniziale molto grande. Se tra le pagine non c'è molta comunanza con JS, si potrebbe obiettare che si tratta di un grande sovraccarico che potrebbe essere distribuito tra le richieste.

Detto questo, dico di andare. Non penso che quanto sopra sia molto preoccupante. Vedrai molto rapidamente quali saranno i problemi:)

    
risposta data 22.07.2014 - 01:47
fonte