Posts
Em uma Single Page Application, Devo processar no Cliente ou no Servidor?
27 de dezembro de 2015 • 2 min de leitura

Um dos pontos de venda da Single Page Application (SPA) era transferir trabalho tradicionalmente realizado no servidor para o cliente. Sinto que a SPA cumpriu essa promessa.
No entanto, nem tudo são flores. É fácil ficar excessivamente entusiasmado e empurrar muito trabalho para o cliente. Frequentemente esquecemos que não podemos controlar o ambiente do cliente — o cliente pode ser qualquer coisa, desde uma máquina de dez anos até o smartphone mais moderno com acesso a velocidades de internet variadas. A única coisa com que podemos contar é o usuário visualizando nosso site em um navegador.
Processamento
Na minha experiência, processamento intensivo e dados que precisam de consistência entre o servidor e o cliente, como conversões de data ou dados que requerem cálculos precisos, como dinheiro, são candidatos ideais para renderização no lado do servidor.
Paginação
Uma tarefa comum realizada no cliente é a paginação. Com conjuntos de dados pequenos isso funciona muito bem; no entanto, conjuntos de dados pequenos nunca permanecem pequenos. À medida que os dados crescem, a aplicação fica lenta e eventualmente se torna não responsiva. Infelizmente, você não sabe que isso está acontecendo porque está no cliente e, pior ainda, não ocorre em todos os clientes, tornando difícil a solução de problemas.
Mover a paginação do cliente para o servidor aliviará problemas de performance relacionados à paginação no cliente. Você pode estar pensando: “mas agora estou fazendo uma tonelada de chamadas de API. Fazer tantas chamadas de API não parece ideal.” Verdade, parece mesmo, mas você ficará surpreso com a rapidez com que seus dados retornam do servidor. E a melhor parte? Você controla o servidor e pode aumentar a capacidade conforme necessário.
No final do dia, você quer fornecer ao usuário uma experiência rica e responsiva, e às vezes isso significa deixar o servidor fazer o trabalho pesado.
Resumo
Resumindo, quando possível queremos transferir trabalho para o cliente, mas ao fazer isso, podemos rapidamente sobrecarregar o cliente. Manter tarefas árduas como paginação e processamento intensivo no servidor pode nos proteger de sobrecarregar o cliente.
Autor: Chuck Conway é especialista em engenharia de software e IA Generativa. Conecte-se com ele nas redes sociais: X (@chuckconway) ou visite-o no YouTube.