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
Eseguire operazioni con timeout in React
Semplificare il deployment di siti statici con Azure Static Web App
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Utilizzare le collection expression in C#
Eseguire operazioni sui blob con Azure Storage Actions
Assegnare un valore di default a un parametro di una lambda in C#
Come migrare da una form non tipizzata a una form tipizzata in Angular
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Aggiungere interattività lato server in Blazor 8
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Eseguire le GitHub Actions offline
I più letti di oggi
- PWAConf 2020 - Online
- Effettuare il binding di date in Blazor
- What's new in Azure Functions and Extensions
- Mantenere sempre reattiva una Lambda di AWS
- Proteggersi dagli attacchi di Open Redirect in ASP.NET Core MVC
- Gestire errori funzionali tramite exception in ASP.NET Core Web API
- Sblocca le performance della tua applicazione con .NET 8