Cómo servir en local los scripts de AJAX.net

Esto es un truco para cuando no se quiere utilizar los recursos embebidos para servir el Microsoft AJAX JavaScript runtime que permite ejecutar los controles AJAX.NET, y en lugar de ello poder cogerlos de archivos guardados localmente en un directorio de la aplicación. No solo ganaremos a la hora de depurar sino que se reduce considerablemente el tiempo de carga de las páginas.

(pendiente de traducir: fuente original)

Create a directory structure under your web application’s root directory

You’ll need to create a directory structure that corresponds to the attributes of the assembly that normally contains the script files. In your case you’ll can create a subdirectory structure in your web site like this: ScriptsMicrosoft.Web.Extensions1.0.61025.0. The top directory doesn’t have to be called Scripts you can call it anything you wish. Since MicrosoftAjax.js is in the Microsoft.Web.Extensions assembly, this is why the second directory level is called Microsoft.Web.Extensions. The final directory is the version number of the DLL. You can see this from your web.config:

<compilation debug="false">
  <assemblies>
  <add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, …"/>
  </assemblies>
</compilation>

Copy the ASP.NET AJAX JavaScript runtime files

When you installed ASP.NET AJAX you’ll have had the ASP.NET AJAX JavaScript source files installed, by default into:

C:Program FilesMicrosoft ASP.NETASP.NET 2.0 AJAX Extensionsv1.0.61025ScriptLibraryDebug

and

C:Program FilesMicrosoft ASP.NETASP.NET 2.0 AJAX Extensionsv1.0.61025ScriptLibraryRelease

Copy MicrosoftAjax.js from the Debug directory into your ScriptsMicrosoft.Web.Extensions1.0.61025.0 directory, and rename it to Microsoft.Web.Resources.ScriptLibrary.MicrosoftAjax.debug.js. Then do the same for MicrosoftAjaxTimer.js and MicrosoftAjaxWebForms.js following the same pattern of adding Microsoft.Web.Resources.ScriptLibrary. to the start of the filename, and then adding .debug in front of the .js.

Also copy the same files from the Release directory but this time rename them without adding the .debug in front of the .js.

Now the source files will be picked up whether or not you are running in debug mode.

Set the ScriptPath on your ScriptManager

Finally, set the ScriptPath property on ASP.NET ScriptManager to tell it to source the ASP.NET AJAX runtime from your new directory:

<asp:ScriptManager ID="sm1" runat="server" ScriptPath="~/Scripts">
</asp:ScriptManager>

Verifying that the JavaScript files are being served from files

If you do a “View Source” in Internet Explorer you should see the JavaScript files being included from the appropriate location:

<script src="Scripts/Microsoft.Web.Extensions/1.0.61025.0/ Microsoft.Web.Resources.ScriptLibrary.MicrosoftAjax.js" type="text/javascript">
</script>

Otros artículos de esta serie:

[seriesposts show_date=0 order=asc]

Publicar un Comentario

Si es la primera vez que escribes, tu comentario será moderado por un administrador.

Con el fin de garantizar un ambiente de debate respetuoso, no se permitirán comentarios:

  • insultantes, difamatorios, racistas, sexistas, y/o discriminatorios
  • excesivamente críticos con otros participanes
  • que no aporten nada, sin sentido o repetidos
  • con enlaces considerados publicidad o spam
  • con material protegido por derechos de autor
*
*