O que é uma solicitação AJAX oculta?
Percebi um aumento no uso de solicitações ocultas de AJAX, projetadas para fazer com que a ação de um usuário pareça acontecer imediatamente. Vou me referir a esse tipo de solicitação AJAX como sem bloqueio. É uma solicitação AJAX feita sem que o usuário esteja ciente de que está acontecendo, é executada em segundo plano e sua operação é silenciosa ( não há detalhes para indicar uma conclusão bem-sucedida da chamada AJAX ). O objetivo é fazer com que a operação pareça que aconteceu imediatamente quando realmente não terminou.
Aqui estão exemplos de solicitação AJAX sem bloqueio;
- O usuário clica em excluir em uma coleção de emails. Os itens desaparecem imediatamente da caixa de entrada e podem continuar com outras operações. Enquanto isso, uma solicitação AJAX está processando a exclusão dos itens em segundo plano.
- O usuário preenche um formulário para novos registros. Cliques salvar. O novo item aparece na lista imediatamente. O usuário pode continuar adicionando novos registros.
Para esclarecer, aqui estão exemplos de bloqueio de solicitação AJAX;
- O usuário clica em excluir em uma coleção de emails. Um cursor de ampulheta é exibido. A solicitação AJAX é feita e, quando responde, o cursor da ampulheta é desativado. O usuário precisa esperar um segundo para que a operação seja concluída.
- O usuário preenche um formulário para novos registros. Cliques salvar. O formulário fica cinza com um carregador AJAX animado. Uma mensagem é exibida "Seus dados foram salvos" e o novo registro aparece na lista.
A diferença entre os dois cenários acima é que uma configuração AJAX sem bloqueio não fornece feedback do desempenho operacional e uma configuração AJAX bloqueada.
O risco de solicitações ocultas de AJAX
O maior risco desse estilo de solicitação AJAX é que o aplicativo Web esteja em um estado completamente diferente quando a solicitação AJAX falhar.
Por exemplo, um exemplo sem bloqueio;
- O usuário seleciona vários e-mails. Clica no botão excluir. A operação parece ocorrer imediatamente (os itens desaparecem da lista). O usuário clica no botão de composição e começa a digitar um novo email. É nesse momento que o código JavaScript descobre que a solicitação AJAX falhou. O script pode mostrar uma mensagem de erro, mas é realmente inútil no momento.
Como alternativa, um exemplo de bloqueio;
- O usuário seleciona vários e-mails. Clica no botão excluir. Vê uma ampulheta, mas a operação falha. Eles recebem uma mensagem de erro dizendo "erro. Blá blá blá". Eles retornam à lista de e-mails e ainda têm os e-mails que desejavam excluir selecionados. Eles podem tentar excluí-los novamente.
Há também outros riscos técnicos para executar solicitações AJAX sem bloqueio. O usuário pode fechar o navegador, navegar para outro site e navegar para outro local na web atual que torne sem sentido o contexto de qualquer resposta a erro.
Então, por que está se tornando tão popular?
Facebook, Google, Microsoft, etc. etc .. todos esses grandes domínios estão cada vez mais usando solicitações AJAX sem bloqueio para fazer com que as operações pareçam ser executadas instantaneamente. Também vi um aumento nos editores de formulários que não têm botão de salvar ou enviar . Assim que você deixar um campo ou pressione enter. O valor é salvo. Não há mensagem de seu perfil atualizada ou etapa de salvamento.
As solicitações AJAX não são uma certeza e não devem ser tratadas como bem-sucedidas até que sejam concluídas, mas muitos aplicativos principais da web estão operando assim.
Esses sites que usam chamadas AJAX sem bloqueio para simular aplicativos responsivos assumem um risco desnecessário com o custo de aparecer rapidamente?
Esse é um padrão de design que todos nós devemos seguir para permanecermos competitivos?