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
Usare lo spread operator con i collection initializer in C#
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Utilizzare Tailwind CSS all'interno di React: installazione
Creare alias per tipi generici e tuple in C#
Verificare la provenienza di un commit tramite le GitHub Actions
Gestire undefined e partial nelle reactive forms di Angular
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Implementare il throttling in ASP.NET Core
Code scanning e advanced security con Azure DevOps
Evitare il flickering dei componenti nel prerender di Blazor 8
Creare gruppi di client per Event Grid MQTT
I più letti di oggi
- PWAConf 2020 - Online
- Reactive form tipizzati con FormBuilder in Angular
- Utilizzare ChatGPT con Azure OpenAI
- Mantenere sempre reattiva una Lambda di AWS
- Messaggi in tempo reale con Blazor Server
- Una chat con #aspnetcore e #websockets https://aspit.co/bmh di @GentiliMoreno #webapi #aspnetcore2
- Autenticarsi in modo sicuro su Azure tramite GitHub Actions
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Creare una MarkupExtension per accedere alle proprietà statiche in Silverlight 5.0
- Navigare la struttura visuale di un UIElement fino a recuperare l'elemento logico in Silverlight 3.0