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
Miglioramenti agli screen reader e al contrasto in Angular
Gestire domini wildcard in Azure Container Apps
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Hosting di componenti WebAssembly in un'applicazione Blazor static
Generare file PDF da Blazor WebAssembly con iText
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Reactive form tipizzati con FormBuilder in Angular
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Definire stili a livello di libreria in Angular
Cambiare la chiave di partizionamento di Azure Cosmos DB
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Utilizzare Model as a Service su Microsoft Azure
I più letti di oggi
- Riordinare le righe di una GridView di ASP.NET con jQuery
- Creazione di un alarm con suono personalizzato con Windows Phone 7.1
- Utilizzare la session affinity con Azure Container Apps
- Blue-green deployment con Azure Web App e DevOps
- Ed infine anche il calendario :)
- Configurare la diagnostica di Azure attraverso Visual Studio
- Recuperare la data di creazione di un tag tramite una pipeline YAML di Azure DevOps
- Microsoft Security Bulletin MS05-002
- .NET Core e dispositivi IoT
- Eseguire attività pianificate con Azure Container Jobs