Comment appliquer la virtualisation des lignes pour une table / liste dans HTML / CSS / JS?

Je voudrais créer une table / liste HTML personnalisée avec beaucoup de lignes. J'ai besoin de la virtualisation des lignes, mais je ne suis pas sûr de savoir quel est le meilleur moyen d'y parvenir.

Par la virtualisation des lignes, je me réfère au concept où les lignes de la table / ul / div ne sont pas visibles ou rendues du tout, pour autant qu'elles ne soient pas déroulées dans la vue. Fondamentalement, le but est d'éliminer le rendu si l'objet n'est jamais affiché (derrière un défilement).

Des idées? Je pense que les éléments DOM doivent être ajoutés à la liste dès qu'ils «se déplacent dans la vue». Et puis, je devrais avoir une div invisible avec la hauteur de la hauteur totale de toutes les lignes pour rendre possible le défilement.

Y a-t-il des exemples de code simples qui accomplissent cela?

Je ne connais pas d'exemples de code «simples», mais j'ai trouvé les projets suivants qui utilisent la virtualisation DOM

MegaList et SlickGrid

L'exemple MegaList est le plus facile à comprendre puisqu'il s'agit simplement d'un «ul» qui lui permet d'ajouter des éléments de liste.

Infinite Scrolling devrait vous faire pointer dans la bonne direction.

Le Wijmo 5 FlexGrid implémente ce comportement. Vous pouvez trouver une comparaison en ligne ici