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
Utilizzare Azure Cosmos DB con i vettori
Creare una libreria CSS universale: Immagini
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Gestione dell'annidamento delle regole dei layer in CSS
Recuperare l'ultima versione di una release di GitHub
Gestire la cancellazione di una richiesta in streaming da Blazor
Creare una libreria CSS universale: Nav menu
Introduzione ai web component HTML
Estrarre dati randomici da una lista di oggetti in C#
Creare una libreria CSS universale: i bottoni
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Applicare un filtro per recuperare alcune issue di GitHub