Sfruttare una CDN con i bundle di ASP.NET

di Marco De Sanctis, in ASP.NET 4.5, ASP.NET MVC 4,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi