Nell'articolo di introduzione ad ASP.NET 4.5 e ASP.NET MVC 4, abbiamo visto come i bundle ci permettaoo di ottimizzare i tempi di download delle nostre pagine web: impostando il flag di debug a false nel web.config, infatti, tutti i file referenziati dallo stesso bundle vengono associati a un unico indirizzo logico e minificati.
Sebbene questa tecnica apporti innegabili vantaggi, alle volte può essere più conveniente referenziare i riferimenti più comuni a un indirizzo di una CDN. Oltre al beneficio di non consumare banda, infatti, c'è un importante guadagno prestazionale: se, per esempio, sfruttiamo la CDN di jQuery, che è utilizzata da milioni di siti in tutto il mondo, sarà parecchio probabile che il file corrispondente si trovi già nella cache del browser di chi ci sta visitando, rendendo il download praticamente istantaneo.
I bundle supportano perfettamente questo scenario e consentono di specificare l'indirizzo della CDN in fase di definizione:
var jQueryCdn = "http://code.jquery.com/jquery-1.8.2.min.js"; var jQueryUiCdn = "http://code.jquery.com/ui/1.9.0/jquery-ui.js"; var jQueryUiCssCdn = "http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css"; bundles.Add(new ScriptBundle("~/bundles/jquery", jQueryCdn) .Include("~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryui", jQueryUiCdn) .Include("~/Scripts/jquery-ui-{version}.js")); bundles.Add(new StyleBundle("~/Content/themes/base/css", jQueryUiCssCdn) .Include("~/Content/themes/base/jquery.ui.css")); bundles.UseCdn = true;
Nel codice precedente, abbiamo sfruttato gli indirizzi di CDN ufficiali di jQuery e jQuery UI. Come possiamo notare, è possibile referenziare sia script che fogli di stile. Impostando il flag UseCdn a true, si ottiene che, una volta passati in modalità release, venga renderizzato esclusivamente l'indirizzo della CDN.
<link href="http://code.jquery.com/.../jquery-ui.css" rel="stylesheet"/> <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
In modalità debug, invece, i riferimenti emessi sono sempre quelli locali, in modo che siamo in grado di effettuare il debug del codice JavaScript sfruttando le versioni non minificate incluse nel progetto.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Usare il colore CSS per migliorare lo stile della pagina
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Effettuare il refresh dei dati di una QuickGrid di Blazor
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Cambiare la chiave di partizionamento di Azure Cosmos DB
Ordine e importanza per @layer in CSS
Evitare il flickering dei componenti nel prerender di Blazor 8
Generare token per autenicarsi sulle API di GitHub
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core