È consigliabile raggruppare gli script in un unico pacchetto per pagina o disporre di diversi pacchetti?

8

In un'applicazione web su cui sto lavorando, ci sono 3 tipi di script (lo stesso vale per i fogli di stile):

  • Quelle necessarie su ogni singola pagina (ad es. jquery)
  • Quelle necessarie su più pagine, ma non tutte (ad esempio una libreria lightbox utilizzata su pagine che mostrano immagini caricate dall'utente)
  • Quelle necessarie su una singola pagina (ad esempio qualcosa di specifico per la funzionalità di quella pagina)

Ogni pagina dovrebbe avere il proprio bundle che raggruppa tutti gli script di cui ha bisogno? O ogni tipo di script dovrebbe essere il proprio pacchetto (ad esempio una pagina potrebbe caricare 3 pacchetti - essentialScripts.js, mediaLibraries.js e pageSpecificScripts.js)? O c'è un approccio migliore di cui non sono a conoscenza?

Quali sono le migliori pratiche per il raggruppamento di questi script e quali vantaggi / svantaggi ci sono per approcci diversi?

(Non sono sicuro di quanto sarà rilevante, ma il progetto su cui sto lavorando utilizza il bundle ASP.NET MVC. Inoltre, per semplificare le cose, supponiamo che nessuno dei file arriverà da un terzo party CDN in modo che vengano tutti caricati dallo stesso luogo e il client non ne avrà nessuno visitando altri siti.)

    
posta Tim 13.03.2017 - 12:49
fonte

1 risposta

5

Per applicazioni complesse ha senso fare lo split che hai suggerito. I tuoi bit comuni, in particolare le librerie esterne, cambieranno molto meno spesso rispetto al codice dell'applicazione. Quindi sono i primi candidati per il caching. Raggruppare tutto insieme lo impedisce. D'altra parte aggiungono richieste HTTP aggiuntive. Ciò renderebbe l'esperienza iniziale un po 'meno piacevole. Un modello comune è quello di avere librerie esterne in un pacchetto e il codice dell'applicazione in un altro. Soprattutto quando quest'ultimo è più piccolo e c'è molta condivisione tra pagine e viste, ha senso.

Tuttavia, questo è un bersaglio mobile. Le migliori pratiche di oggi sono gli anti-schemi di domani. Il consiglio cambia in un mondo in cui http / 2 è comune o quando i moduli lato client sono supportati da tutti i principali browser.

    
risposta data 13.03.2017 - 18:22
fonte

Leggi altre domande sui tag