Boa prática de AJAX

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...

 

Tags: , ,

.Net

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

Fabiano Belmonte

Senior Architect, especialista em aplicações e-business com larga experiência em B2B (Submarino. Com e Saraiva.Com). Trabalha há 5 anos com a tecnologia .Net, aplicando conhecimentos nas diversas áreas: instituições financeiras (sistema SPB), e-commerce, gerenciamento logístico entre outras.