Galera, seguinte, acredito que muitos possuem este mesmo problema e assim como eu já não aguenta mais procurar uma solução completa e padronizada na WEB, tudo pela metade ou soluções vagas, por favor nos ajudem a resolver ok.
Problema: Aplicação WEB desenvolvida em Node.JS, onde utilizamos a dataTable do bootstrap para mostrar na tela todos os registros da tabela materiais, esta tabela possui mais de 12 mil registros cadastrados, ao entrar na tela demora cerca de 8 minutos para carregar a dataTable no front end, a consulta em si é rápido, cerca de 8 segundos (olhando no prompt), porém no front end pra popular a dataTable demora pra caramba, e sim, preciso carregar tudo na tela pois é cadastro de materiais e o usuário poderá filtrar qualquer item da lista de 12 mil linhas.
Requisitos:
- 1-Deve seguir a estrutura do código existente, não vamos deixar mais complexa não blz;
- 2-Não deve ser sugerido nada com PHP, post exclusivo para Javascript e Node.JS;
- 3-Não deve ser sugerido o server-side, não se aplica a esta aplicação;
- 4-Não deve ser sugerido nada sobre API, RestFull, etc… ok. Usar a lógica da estrutura existente.
Vamos ao código, estrutura simples e de fácil entendimento, básico para iniciantes, sem complexidade, por favo, vamos tentar manter assim:
A estrutura do meu código é:
app.js > database > route > dao > view
Aqui está minha rota /material
Ao acessar este endereço entramos no arquivo materiais.js que está na pasta dao e que contém a renderização das páginas .ejs , veja abaixo que ao acessar /material entramos na rota pageMaterial, nesta rota tenho uma função que recebe a consulta da tabela materiais e grava na variável materiais e depois passo essa variável materiais para o render da view como DTMaterial:
Ai lá na página .ejs que é meu font end recebo o DTMaterial e passo em um forEach populando assim a dataTable, row por row:
E lá no meu tails eu inicializo minha dataTable:
E esta é minha função que faz a consulta e retorna para a variável que vai pra rota:
Está tudo ok, funcionando perfeitamente, porém demora 300 anos pra carregar a dataTable, galera, por favor, vamos montar juntos a solução? já tentei de tudo, a meses pesquisando e nada.
Esta é minha dataTable depois de carregada 100%: