Senior
Mamy tabelę z 10 000 wierszami, która zaczyna się zacinać podczas renderowania. Dlaczego tak się dzieje i jak to naprawić?
sobes.tech AI
Odpowiedź od AI
Renderowanie tabeli z 10 000 wierszami powoduje opóźnienia z powodu dużej liczby elementów DOM, co mocno obciąża przeglądarkę i spowalnia renderowanie.
Jak to naprawić:
- Wirtualizacja listy (wirtualny przewijanie) — renderować w DOM tylko widoczną część tabeli, ładując wiersze w miarę przewijania.
- Paginacja — podzielić dane na strony, pokazując ograniczoną liczbę wierszy naraz.
- Optymalizacja renderowania — używać memoizacji, unikać zbędnych ponownych renderów.
Przykład użycia wirtualnego przewijania z React i react-window:
import { FixedSizeList as List } from 'react-window';
const Row = ({ index, style }) => (
<div style={style}>Wiersz {index}</div>
);
<List
height={500}
itemCount={10000}
itemSize={35}
width={300}
>
{Row}
</List>