Estoy haciendo una llamada http donde la respuesta llega rápidamente desde la API. Es una gran cantidad de datos, por lo que cuando intento insertar eso en mi HTML, el navegador se congela
ngOnInit() { const params = { page: 1, size: 100000 } this.testSer.getPassengers(params).subscribe( (data: any) => { this.data = data.data; }) } <ul *ngFor="let item of data; let i = index"> {{ i}} -- {{ item.name }} </ul>¿Cómo puedo 'dar trabajo' en fragmentos al navegador?
lo que intenté
En algún lugar pasado vi un código similar a este
ngOnInit() { const params = { page: 1, size: 100000 } this.testSer.getPassengers(params).subscribe( (data: any) => { this.data = data.data; this.timeoutInterval = setTimeout(() => { this.loopChunks(); }, 150); }) } loopChunks() { if (this.currentChunk < this.data.length) { this.currentChunk += this.chunkStep; this.timeoutInterval = setTimeout(() => { this.loopChunks(); }, 1000); } }donde usó setTimeout para eso pero no puedo hacer que funcione
Yo diría que representar los elementos DOM en sí es lo que congela su navegador.
Es posible que desee agregar desplazamiento virtual a su tabla para que solo muestre lo que está visible actualmente en la pantalla en lugar de todo a la vez.
Hay muchas bibliotecas que pueden ayudarte con eso, como Clusterize o ngx-virtual-scroller .