Senior
Έχουμε έναν πίνακα με 10.000 γραμμές που αρχίζει να κολλάει κατά την απόδοση. Γιατί συμβαίνει αυτό και πώς μπορούμε να το διορθώσουμε;
sobes.tech AI
Απάντηση από AI
Отрисовка таблицы с 10 000 строк вызывает лаги из-за большого количества DOM-элементов, что сильно нагружает браузер и замедляет рендеринг.
Как исправить:
- Виртуализация списка (виртуальный скролл) — отрисовывать в DOM только видимую часть таблицы, подгружая строки по мере прокрутки.
- Пагинация — разбить данные на страницы, показывая ограниченное число строк за раз.
- Оптимизация рендеринга — использовать мемоизацию, избегать лишних перерисовок.
Пример использования виртуального скролла с React и react-window:
import { FixedSizeList as List } from 'react-window';
const Row = ({ index, style }) => (
<div style={style}>Row {index}</div>
);
<List
height={500}
itemCount={10000}
itemSize={35}
width={300}
>
{Row}
</List>