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
Referenziare un @layer più alto in CSS
Utilizzare Copilot con Azure Cosmos DB
Miglioramenti nell'accessibilità con Angular CDK
Triggerare una pipeline su un altro repository di Azure DevOps
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Miglioramenti agli screen reader e al contrasto in Angular
Eliminare una project wiki di Azure DevOps
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Creare gruppi di client per Event Grid MQTT
Eseguire i worklow di GitHub su runner potenziati
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Ottenere un token di accesso per una GitHub App