Quais são os tradeoffs de renderização do lado do cliente vs. renderização do lado do servidor?
Eu venho trabalhando no espaço da aplicação web desde a época em que muitos não't percebem que havia uma diferença entre um site e uma aplicação baseada na web.
Na época, aplicações cliente/servidor eram a grande coisa e JavaScript era usado principalmente apenas para validação, e na realidade não podia't fazer muito mais.
Back então, grid computing e clustering de servidores ainda eram conceitos muito novos e poucas empresas estavam usando-os efetivamente, se é que estavam. Isto é quando você realmente tinha que estar ciente do custo de suas decisões de desenvolvimento, uma vez que mesmo adicionando alguns segundos de tempo de processamento à sua página foi multiplicado pelo número de pessoas usando-a desde que ela foi renderizada do lado do servidor, o servidor estava fazendo todo o trabalho.
Pense sobre isso desta forma. Seu corte pode ser 10 vezes mais rápido do que o cliente, talvez até 100 se você considerar que ele é dedicado apenas a servir a página web. Se você tem menos de 100 pessoas acessando seu site a qualquer momento, então é provável que seja mais rápido rodar sua renderização no servidor. No entanto, se você estiver recebendo mais de 100 usuários de cada vez, de repente, o servidor começa a ficar atolado de pedidos. Isso causa lentidão para todos os usuários do site.
Se você estiver rodando um site grande que atende mais de 1000 usuários de cada vez, eles vão ver a velocidade diminuir significativamente e você verá aumentos significativos de custo a menos que você possa colocar mais processamento no cliente. Guarde o servidor para o que ele's realmente é necessário, processando a lógica do negócio.
Uma das coisas mais difíceis para eu assistir são todos os mal-entendidos de como e porque essas várias tecnologias funcionam. Basicamente, temos um monte de pequenos desenvolvedores de aplicativos trabalhando em uma aplicação corporativa e percebendo que nesse nível suas práticas não't funcionam, então eles inventam uma nova estratégia para lidar com o assunto que é elegante e muito útil se você entender o contexto. Então eles escrevem um livro ou blog, ou compartilham sua tecnologia com o mundo onde os desenvolvedores de pequena escala a obtêm e são informados de que é a melhor maneira de fazer as coisas, mas eles não têm idéia do porquê, mas eles pensam que têm, então eles saem e escrevem tutoriais e eventualmente todo tipo de práticas ruins são introduzidas a esta nova tecnologia. Quando os outros devs entram numa aplicação a nível empresarial e tentam utilizar estes falsos paradigmas eles pensam, "isto não't funciona". Eles criam a sua própria solução e todo o processo começa novamente.
O importante é considerar sempre o SEU ambiente e o SEU público. Se for mais eficiente colocar todo o processamento no servidor para o seu pequeno público, então faça-o, mas eu aviso-o para pensar adiante. Assuma que a sua aplicação será bem sucedida. Isso significa que você terá mais usuários? Se sim, será bom se você já tiver uma estratégia para lidar com o aumento de carga.
Se você considerar essas coisas, isso o ajudará a ver onde os desenvolvedores estão't obtê-lo quando eles tentarem e ensiná-lo como ele's feito.
Artigos semelhantes
- O 'Flutter for Web' vai suportar renderização do lado do servidor para melhor SEO?
- Se você executar um script no cliente local obtendo e transmitindo o endereço IP do cliente para o servidor, a VPN não será possivelmente violada?
- Tenho um pára-brisas novo para o pára-brisas do meu carro. Um lado reflector e um lado bonito. Que lado deve ficar virado para o sol?
- Podemos rodar um servidor em pc e um cliente no Android?