Em um projeto que estou trabalhando, surgiu uma dúvida e gostaria da opinião do pessoal daqui do fórum.
Tenho várias classes de negócio que produzem objetos que facilmente são serializados em JSON. Tenho servlets (sempre invocados via AJAX) que são usados apenas como adapters sobre as classes de negócio subjacentes. Esses servlets dificilmente ultrapassam 20 linhas de código (incluindo imports, comentários e tudo mais), eles apenas leem os parâmetros da requisição, mandam para a classe de negócio e colocam o resultado no response. No response, esses servlets podem gerar uma dessas duas coisas:
- JSON puro, que será processado no cliente (um browser) que cria <div>s e <span>s dinamicamente e os coloca na página.
- A HTML pronta dos <div>s e <span>s (gerados por um JSP), no browser, o javascript simplesmente acrescenta esse resultado dentro de uma <div> usando o innerHTML.
Já testei ambas as formas, e as duas produzem o mesmo resultado e funcionam muito bem, no entanto gostaria de colocar as diferenças na balança:
A forma 1 é mais leve, gera menos tráfego de rede e demora menos tempo para ser processada no servidor, pois boa parte do processamento (layout e formatação) fica no cliente.
No entanto, do lado do cliente, o código fica bem complexo e a manutenibilidade é ruim, pois há um monte de javascript montando a página dinamicamente.
A forma 2 é mais simples do lado do cliente, pois basta uma linha de código para colocá-la no layout, mas demora mais no servidor. No entanto, no servidor tenho apenas um JSP simples e a manutenibilidade é legal.
Há também uma forma híbrida destas duas, criar um JSON que contém em algum campo a HTML pronta. Mas, não sei se isso é boa ideia.
Outra coisa, é que no futuro pretendo reutilizar os JSONs gerados para criar webservices.
Eu pessoalmente, sou mais inclinado a ir para a forma 1, apesar de ser algo completamente fora do padrão (ou talvez inovador se você ver de uma forma diferente). Mas, gostaria de coletar as opiniões dos demais colegas do fórum.
