Referenziare script personalizzati da CDN tramite lo ScriptManager di ASP.NET 4.5

di Marco De Sanctis, in ASP.NET 4.0,

Nel precedente script abbiamo visto come, tramite il flag EnableCdn, possiamo far sì che il controllo ScriptManager referenzi file JavaScript quali jQuery o la libreria AJAX per Web Forms sfruttando una CDN, e gestisca anche il fallback su una versione locale di questi file nel caso il link remoto non sia funzionante.

Questa tecnica non è limitata solo agli script standard di ASP.NET Web Forms, ma è estendibile per supportare qualsiasi tipo di file, aggiungendo un opportuno [bscript resource mapping. Per esempio, supponiamo di aver bisogno della libreria FancyBox, che non è censita all'interno dello ScriptManager. Tutto ciò che dobbiamo fare è aggiungere un nuovo mapping, denominato "fancybox", con il codice seguente:

ScriptManager.ScriptResourceMapping
  .AddDefinition("fancybox", new ScriptResourceDefinition()
  {
    CdnPath = "http://cdn.jsdelivr.net/fancybox/2.1.3/jquery.fancybox.pack.js",
    LoadSuccessExpression = "jQuery.fancybox",
    Path = "~/Scripts/jquery.fancybox.pack.js"
  });

In particolare, la proprietà LoadSuccessExpression indica la variabile che verrà utilizzata, lato client, per verificare il corretto caricamento di FancyBox dall'URL specificato in CdnPath e sfruttare il Path locale nel caso in cui questo non abbia avuto successo:

<script type="text/javascript">
//<![CDATA[
(jQuery.fancybox)||document.write('<script type="text/javascript" src="Scripts/jquery.fancybox.pack.js"><\/script>');//]]>
</script>

A questo punto, non dobbiamo far altro che referenziare questo script nello ScriptManager:

<asp:ScriptManager runat="server" EnableCdn="true" EnableCdnFallback="true">
  <Scripts>
    ..
    <asp:ScriptReference Name="fancybox" />
  </Scripts>
</asp:ScriptManager>

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