Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Rendeização de NegociacoesView a cada nova Negociação

O método template() de NegociacoesView, retorna a tabela inteira como template string, isso significa que a cada nova adição e remoção na lista de negociações, será retornado novamente o template string com todas as negociações.

Numa aplicação em produção com muitos dados seguindo este método, não haveria problemas de performance ao renderizar a tabela para cada linha incluída ou removida? Haveria outras estratégias para este cenário, como apenas utilizar append e remove do javascript?

5 respostas
solução!

No cenário que você colocou, na prática, é feita paginação, evitando trazer tudo e pegando de parte em parte. É uma prática bem comum. No caso da aplicação do curso, você não terá problemas de performance nesse sentido.

A solução que você propôs é viável. Torna a vida do programador mais complexa comprometendo a legibilidade de código, mas em teoria (dependendo do cenário) pode ser mais rápida. Ai você tem que pesar entre legibilidade e performance.

Quando criei o curso pela primeira vez criei um algorítimo de DIF do DOM e um camada de virtual DOM. Ficou tão avançado e tomaria tanto tempo do aluno que ele deixaria de aprender ES6, padrões de projetos e ficaria enfurnado nessa estratégia.

Resumindo, sua preocupação com performance é salutar, mas só se preocupe quando problemas de performance aparecerem, caso contrário, você pode tentar matar muita formiga com bazuca não isso não é necessário.

Tudo bem meu aluno?

No cenário que você colocou, na prática, é feita paginação, evitando trazer tudo e pegando de parte em parte. É uma prática bem comum. No caso da aplicação do curso, você não terá problemas de performance nesse sentido.

A solução que você propôs é viável. Torna a vida do programador mais complexa comprometendo a legibilidade de código, mas em teoria (dependendo do cenário) pode ser mais rápida. Ai você tem que pesar entre legibilidade e performance.

Quando criei o curso pela primeira vez criei um algorítimo de DIF do DOM e um camada de virtual DOM. Ficou tão avançado e tomaria tanto tempo do aluno que ele deixaria de aprender ES6, padrões de projetos e ficaria enfurnado nessa estratégia.

Resumindo, sua preocupação com performance é salutar, mas só se preocupe quando problemas de performance aparecerem, caso contrário, você pode tentar matar muita formiga com bazuca não isso não é necessário. Por fim, o innerHTML hoje é bem rápido, diferente do passado.

Tudo bem meu aluno?

A sim, entendi. Se numa aplicação for necessário obter muitos registros seria melhor então obter aos poucos no Back End e renderizar no Front End, certo?

Obrigado pela explicação.

Tranquilo! Você verá dicas de performance ao logo do curso. Aliás, ainda tem dois módulos pela frente.

Abraço!

A sim, eu estudei os outros módulos, quis confirmar se no final dos módulos o método de renderização seria outro, foi uma dúvida que tive logo quando foi incluído a view de negociações, achei melhor publicar aqui.

Obrigado!