processamento no lado de fora x processamento no lado do cliente + ajax?

procurando alguns conselhos gerais e / ou pensamentos ...

Estou criando o que eu acho ser mais uma aplicação web do que uma página web, porque eu pretendo que seja como um aplicativo do Gmail onde você deixaria a página aberta o dia inteiro enquanto obtinha atualizações "empurradas" para a página (para o interessado eu estou usando a técnica de programação cometa). Eu nunca criei uma página web antes que fosse tão rico em ajax e javascript (agora sou um grande fã do jquery). por causa disso, uma e outra vez, quando eu estou implementando um novo recurso que requer uma mudança dinâmica na interface do usuário que o servidor precisa conhecer, estou diante da mesma pergunta:

1) devo fazer todo o processamento no cliente em javascript e postar de volta o mínimo possível via ajax ou 2) devo postar um pedido para o servidor via ajax, fazer o servidor fazer todo o processamento e depois mandar de volta o novo html . em seguida, na resposta ajax eu faço uma atribuição simples com o novo HTML

Eu tenho sido inclinado a seguir sempre # 1. este aplicativo da web que eu imagino pode ficar bem tagarela com todos os pedidos de ajax. Meu pensamento é minimizar tanto quanto possível o tamanho das solicitações e respostas, e confiar nos mecanismos de javascript que melhoram continuamente para fazer o máximo possível do processamento e das atualizações da interface do usuário. Eu descobri com jquery eu posso fazer muito no lado do cliente que eu não teria sido capaz de fazer muito facilmente antes. meu código javascript é realmente muito maior e mais complexo do que o meu código do lado do servidor. Há também calulcations simples que eu preciso executar e eu empurrei isso no lado do cliente também.

Eu acho que a principal questão que eu tenho é, devemos sempre nos esforçar para o processamento do lado do cliente sobre o processamento do lado do servidor sempre que possível? Eu sempre senti que quanto menos o servidor tem que lidar melhor para escalabilidade / desempenho. deixe o poder do processador do cliente fazer todo o trabalho duro (se possível).

pensamentos?

questionAnswers(9)

yourAnswerToTheQuestion