Chalalo Land

Tecnologías ASP.NET y un poco Más

Contacto


 Si quierer cooperar, yo feliz, muy agradecido :)

De donde me Visitan?

Locations of visitors to this page

Generic Content

Si te gustaron los articulos, y te animas te estaría muy agradecido!


Recent Posts

Tags

Community

Blogs de MVP

Amigos Geeks

Blogs Imperdibles

GODS

Archives

Email Notifications

[Tips] Desactivar EnablePartialRendering en ScriptManager cuando no utilices UpdatePanels (WebForm no Dead)

Hola que tal?, si bien hay personas que se han puesto una bandera de lucha en contra de los webforms (no comparto esta postura, luego escribiré sobre eso), existen muchas aplicaciones construidas bajo la modalidad de WebForms que utilizan ASP.NET Ajax, y sin duda, se seguirán creando.

Uno de los elementos que utilizamos cuando ocupamos ASP.NET Ajax es el ScriptManager, que muchos desarrolladores lo utilizan sin mayor configuración. Es aquí en donde quiero detenerme un momento, y es que si no estas ocupando un UpdatePanel en la página, y tienes un ScriptManager en la página, ahorras generación y carga de Scripts seteando la propiedad EnablePartialRedering en false.

Ahora bien, por mail me preguntaron, “de que sirve un ScriptManager sin un UpdatePanel!”, y la respuesta es “de mucho”, por ejemplo, podemos utilizar algunos controles del Ajax Control Toolkit que no necesitan un UpdatePanel, sin ir más lejos el control Color Picker junto a un ToolkitScripManager (que hereda de Script Manager)

Caso Ejemplo 1

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>

<br />

Color:<br />

  <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

   <asp:ColorPickerExtender
        ID="TextBox1_ColorPickerExtender" 
        runat="server" Enabled
="True"
        TargetControlID="TextBox1">

   </asp:ColorPickerExtender>

Lo que resulta en:

image

Caso Ejemplo 2

 

Como vez, sin UpdatePanel, otro escenario es por ejemplo la llamada asíncrona a un Webservice o a un WebMethod mediante el ScriptManager y Javascript, para el ejemplo veremos el primer caso:

 

Vamos a tener un WebService que se exponga un WebMethod que se llame cuadrado, que simplemente y para efectos del demo, calculará  y devolverá el cuadrado de un número.

 

Public Class wsmartes

    Inherits System.Web.Services.WebService

 

    <WebMethod()> _

    Public Function Cuadrado(numero As Integer) As Integer

        Return numero * numero

    End Function

 

End Class

 

Luego desde una página haremos la llamada, primero a configurar el ScriptManager para que pueda acceder al servicio:

 

    <asp:ScriptManager ID="ScriptManager1" runat="server">

      <Services>

           <asp:ServiceReference Path="~/wsmartes.asmx" />

      </Services>

    </asp:ScriptManager>

 

Luego el javascript para la llamada Async al Servicio Web.

 

 

<script type="text/javascript">

 

        function Calcula() {

            demo1.wsmartes.Cuadrado(document.getElementById("Text1").value, ResultoBien, Falla);

        }

 

        function ResultoBien(args) {

            alert("El Cuadrado es: " + args);

        }

        function Falla(error) {

            alert("Error:" + error.get_message());

        }

    </script>

 

En la página tengo solo un un input text y un boton html, al momento de ejecutar:

image

Pero que pasa si no tenemos desactivada la propiedad EnablePartialRedering:

image

Tenemos aprox 464KB descargados a la página por la generación de Script (obviamente no contamos el WebForm1.aspx, que es la pagina propiamente tal) desde el ScriptManager, sin embargo si desactivamos la propiedad en cuestión:

image

Ahora tenemos 349Kb , es decir 115Kb aprox menos en la carga de pagina sin contar que no tenemos la propiedad ScriptMode en Release.

Ahora si agregamos esta propiedad, ScriptMode en Release:

image

Ahora disminuimos a 85kb aprox, es decir, logramos reducir el tamaño de los Script Considerablemente!

image

Como vez, con pequeños cambios podemos lograr optimizar nuestras aplicaciones existentes Sonrisa, espero que te sirva!.
Saludos,
Gonzalo

Posted: 23/2/2011 6:19 por Gonzalo Perez | con 4 comment(s)
Comparte este post:

Comentarios

Cristhian Fernández ha opinado:

Ey, muy buen apunte! Tanto tiempo con el ScriptManager y no me había percatado del detalle.

# February 23, 2011 7:17 AM

MVP Factor ha opinado:

Nuestro buen amigo Gonzalo Perez , ha escrito un excelente artículo, aquí el detalle: [Tips] Desactivar

# February 23, 2011 10:33 PM

rodrigo ha opinado:

Como siempre útil el tip, saludos!

# February 24, 2011 2:34 PM

Esteban Gilberto ha opinado:

Muy buen artículo estimado.

Espero ahora, el que mencionas al inicio sobre los WebForms que me parece muy interesante.

Saludos!

# February 24, 2011 8:46 PM