by Fabiano
9. abril 2008 00:22
O Microsoft AJAX Framework oferece muitos, muitos, muitos e muitos recursos interessantes. Porém é necessário tomar alguns cuidados para evitar a má utilização destes recursos em funcionalidades desnecessárias.
Um exemplo simples: um formulário com 1 botão e label e quando clicamos no botão, alteramos a propriedade texto do label para DateTime.Now.ToStiong() e com isso exibimos a hora atual.
Procedimento padrão de ajax: colocar um Script Manager e um UpdatePanel… arrasta os controles para o UpdatePanel e pronto!!!! AJAX implementado…
Claro que isso é o suficiente para dar a impressão que estamos melhorando muito a performance de nossa página, porém podemos melhorar muito mais.
O botão está dentro do Update Panel de forma desnecessária, isso porque ele simplesmente faz o evento click para alterar o valor do Label, ou seja, somente o Label precisa ser enviado para o servidor.
Solução:
- Tirar o botão do Update Panel
- Adicionar uma trigger para o botão dentro do Update Panel
Veja o código:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
</Triggers>
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
Com isso diminuímos o tráfego de dados entre applicação e servidor! em um cenário maior, isso pode mudar muito a performance de sua aplicação.
Conclusão: não utilize o Update Panel em toda a página, é preferível colocar mais do que um Update Panel na página do que colocar em lugares desnecessários.
Bons Códigos...