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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Miglioramenti nelle performance di Angular 16
Eseguire attività con Azure Container Jobs
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Disabilitare automaticamente un workflow di GitHub
Creare moduli CSS in React
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Eseguire una GroupBy per entity in Entity Framework
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Generare token per autenicarsi sulle API di GitHub
Reactive form tipizzati con FormBuilder in Angular
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework