Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais
Tratando erros de Ajax
Data:6/30/2010

Translate this page now :





Categories: ASP.NET , Ajax , JQuery

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :
Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon

Veja Também


 

O ASP.NET Ajax tem sido cada vez mais utilizado na criação de interfaces ricas e altamente interativas com o usuário. Muitos não observam, porém, que o ASP.NET Ajax requer cuidados extras.

Utilizando os recursos tradicionais do ASP.NET as idas ao servidor ficam claras para o usuário através do postback. Quando ocorre algum erro de processamento, ocorre um desvio para página de erro na qual o usuário é informado do problema.

Quando utilizamos ajax, porém, os erros acontecem em background. Se nosso código não estiver muito bem preparado para tratar o erro teremos exatamente o efeito contrário do que esperávamos : A interface será desagradável ao usuário, gerando problemas que o usuário não entende e não são claramente informados, levando o usuário a simples conclusão de que “não funciona”.

A solução é simples : Tratar cuidadosamente os erros nas comunicações Ajax e mostrar ao usuário rapidamente e de forma consistente a ocorrencia de um problema.

Supondo um cenário em que a partir de um valor de um campo buscamos os valores de outros via Ajax, vejam exemplos de formas não consistentes :

- Os valores dos campos simplesmente não são preenchidos devido a um erro e o não preenchimento causa erros posteriores na continuidade para o envio do formulário

- O preenchimento dos valores demora. Sem saber que o preenchimento será automático, o usuário começa a digitar os valors, para depois ver o que digitou ser apagado.

- O erro gera mensagens incompreensiveis no browser e consequentemente o usuário fica perdido. Eventualmente o browser interrompe execução javascript, tirando funcionalidades do formulário.

Desta forma vemos que o tiro pode sair pela culatra : Uma aplicação ajax não cuidadosa pode criar uma interface pior do que sem ajax.

O ponto chave para controlar isso é realizar o tratamento de erros na comunicação ajax. Veja como pode ser feito esse tratamento de erro :

    <script type="text/javascript">

    //Executado apenas quando a página terminar de carregar
        $(document).ready(function () {

        //Define duas funções a serem executadas em todas as chamadas Ajax
            Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(inicio);
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(fim);
        });

        function inicio(sender, args) {
            //Se a mensagem de erro estiver visivel, esconde-a
            //Iniciando uma nova requisição
            $("#Error").slideUp("slow");
        }

        function fim(sender, args) {
        //Se ocorreu erro na requisição, exibe a mensagem de erro
            if (args.get_error() != null) {
                    $("#Error").slideDown("slow");
                //evita que o browser exiba seu próprio tratamento de erro
                args.set_errorHandled(true);
            }
        }
    

Alguns detalhes sobre esse tratamento de erro :

Ele é válido para todas as chamadas Ajax realizadas, portanto pode ser interessante coloca-lo em uma masterpage

Foi utilizado JQuery para criar uma interface de exibição do erro mais animada e consistente com a interface do site



Categories: ASP.NET , Ajax , JQuery


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br