51 messaggi dal 21 novembre 2014
Ciao a tutti,
in una web app ho inserito un form per prendere dei dati. Per validare i dati ho usato la libreria di AJAX Control Toolkit.
Dopo che ho messo la web app online, l'ho testata sulla pagina Google PageSpeed per vedere la velocità: tra i consigli che mi suggerisce è quello di compattare il css ed il js che mi creano i controlli ajax.
Qualcuno di voi sa come rendere più performante questi controlli?
Ho letto che si possono includere i vari js dentro lo script manager, ma non ci ho capito molto. Magari conoscete altre strade o altri strumenti più performanti per effettuare la validazione.
Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
potresti provare ad abilitare il bunding, che è supportato dall'Ajax Control Toolkit dalla versione 15.1. Questo significa che tutti gli eventuali file .js verranno accorpati e serviti da un'unico percorso, in modo che il browser non debba inviare molteplici richieste al server. Il contenuto dovrebbe anche risultare minificato, che è quello che ti chiedeva di fare il PageSpeed.
E così anche per gli eventuali .css.

Qui trovi la guida per abilitare il bundling:
https://ajaxcontroltoolkit.codeplex.com/wikipage?title=How%20to%20use%20bundling%20and%20CDN

In alternativa, puoi fare in modo che le risorse statiche (.js e .css) vengano servite da un CDN anziché dal tuo server. Anche questo approccio è descritto dal link che ti ho postato, e consiste nell'impostare l'attributo EnableCdn a true.
<asp:ScriptManager runat="server" EnableCdn="true">
...
</asp:ScriptManager>


ciao,
Moreno

Enjoy learning and just keep making
51 messaggi dal 21 novembre 2014
Ciao Moreno,
grazie per la risposta. Ho provato a seguire le istruzioni per il bundling:
-Ho scaricato tramite nuget l'ultima versione di AjaxControlToolkit
-Ho scaricato tramite nuget l'ultima versione diAjax Control Toolkit Static Resources
-Fatto ciò mi sono state create delle cartelle come Content e Scripts e nel mio web.config sono state aggiunte delle righe:
  <ajaxControlToolkit useStaticResources="true" renderStyleLinks="false" />
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="AjaxControlToolkit" publicKeyToken="28f01b0e84b6d53e" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-15.1.3.0" newVersion="15.1.3.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  

-Allo Scriptmanager ho aggiunto
  <Scripts>
      <asp:ScriptReference Path="~/Scripts/AjaxControlToolkit/Bundle" />
   </Scripts>
 

-Ho copiato queste righe nell' head della mia pagina
  <asp:PlaceHolder runat="server">
        <%: System.Web.Optimization.Styles.Render("~/Content/AjaxControlToolkit/Styles/Bundle") %>
    </asp:PlaceHolder>
  

-Ho messo il debug a false

Quando lo faccio partire in locale mi dà errore:

Impossibile caricare il file o l'assembly 'AjaxControlToolkit, Version=16.1.0.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e' o una delle relative dipendenze. La definizione di manifesto dell'assembly specificato non corrisponde al riferimento all'assembly. (Eccezione da HRESULT: 0x80131040)

AVV: la registrazione dell'associazione di assembly è disattivata.
Per abilitare la registrazione degli errori di associazione di assembly, impostare il valore del Registro di sistema [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) su 1.
Nota: alcune penalità di prestazione sono associate alla registrazione degli errori di associazione di assembly.
Per disattivare la funzionalità, rimuovere il valore del Registro di sistema [HKLM\Software\Microsoft\Fusion!EnableLog].
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


Impossibile caricare il file o l'assembly 'AjaxControlToolkit, Version=16.1.0.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e' o una delle relative dipendenze. La definizione di manifesto dell'assembly specificato non corrisponde al riferimento all'assembly.

La tua applicazione referenzia il nuovo assembly, ma probabilmente nella cartella /bin si trova ancora il vecchio.

Elimina la cartella /bin e ricompila, a quel punto dovrebbe andare.

ciao,
Moreno

Enjoy learning and just keep making
1.509 messaggi dal 27 dicembre 2005
Ma questi percorsi

AjaxControlToolkit/Bundle

Sono fissi o si possono cambiare ?

Non va detto al Toolkit dove andare a prendere prima i singoli file ?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

nella guida viene citato il pacchetto AjaxControlToolkit.StaticResources che si occupa di fare le due cose che hai citato:
  • Creare i due bundles (js e css) con i percorsi "fissi" ~/Scripts/AjaxControlToolkit/Bundle e ~/Content/AjaxControlToolkit/Styles/Bundle, che al momento non puoi cambiare;
  • Aggiungere a tali bundles i singoli file.

Il progetto è open source, quindi hai un'opportunità di fare in modo che i percorsi siano configurabili: clona il repo GitHub del progetto ed implementa la logica che ti permetterebbe di configurare i percorsi (es. leggili da un appSetting del web.config) ed inviagli una pull request.
Se verrà integrata nel progetto, troverai questa funzionalità nella prossima release del pacchetto NuGet.

ciao,
Moreno
Modificato da BrightSoul il 01 maggio 2016 11.44 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.