Gerardo Contijoch

Experiencias del día a día trabajando con .NET – ASP.NET, C#, ASP.NET MVC y demas…

Sys.ScriptLoadFailedException al intentar cargar un script dinámicamente con ScriptManager

Posted by Gerardo Contijoch en diciembre 16, 2008

Hoy estaba trabajando en un site que usa ASP.NET AJAX y me encontré con el siguiente error:

Sys.ScriptLoadFailedException: The script ‘http://localhost:49573/scripts/Script.js’ could not be loaded.

Ese es un script que yo cargo dinámicamente mediante el ScriptManager de la siguiente manera:

ScriptManager.RegisterClientScriptInclude(pagina, typeof(Page), "miScript", "scripts/Script.js");

Busqué códigos de ejemplos en internet y todos eran iguales al mío, no encontraba el error hasta que me topé con este post de Bill Robertson.

Resulta que ASP.NET AJAX carga los scritps registrados de esta manera de forma asincrónica y es necesario notificar la finalización de la carga de cada script para que todo funcione como debería. Para realizar la notificación simplemente hay que agregar el siguiente código al final del archivo js al que hagamos referencia:

   1: if(typeof(Sys) != "undefined" && typeof(Sys.Application) != "undefined") {
   2:    Sys.Application.notifyScriptLoaded();
   3: }

La validación de la línea 1 no es necesaria en realidad, pero si usamos este archivo en un site donde no se usa ASP.NET AJAX, la línea 2 va a fallar (debido a que puede no existir el objeto Sys).

Una vez hecho eso, el site comenzó a funcionar como siempre y el script se cargó correctamente.

¡Nos vemos en el próximo post!

Publicado originalmente en https://gerardocontijoch.wordpress.com.

2 comentarios to “Sys.ScriptLoadFailedException al intentar cargar un script dinámicamente con ScriptManager”

  1. […] por Gerardo Contijoch en Diciembre 26, 2008 Hace unos días me encontré con otro problema bastante molesto en ASP.NET AJAX al cual no le encontré solución. Se presenta cuando se […]

  2. […] me da la impresión de que es muy pesada y hay que saber demasiado para usarla (los problemas de éste y éste post son un ejemplo de ello). Por cuestiones de trabajo, hace unos meses me vi obligado a […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: