J'ai implémenté le défilement Infinite (c.-à-d. Charger des enregistrements lorsque la barre de défilement atteint le bas de la division). Cela fonctionne bien, mais après avoir chargé trop d'enregistrements sur la page, la page devient trop lourde et cause un rendu lent. En fait, j'utilise cette technique comme remplacement d'une grille, alors, comment puis-je gérer de gros DOM dans ce scénario?
Si vous avez un type d'itération sur une collection d'éléments DOM et que vous n'utilisez pas jQuery pour itérer, utilisez ceci (suggestions par motifs JavaScript ):
for (var iteration = 0, limit = lengthOfElements; iteration++; iteration < limit)
ou
for (var i = myarray.length; i--; )
Peut-être faire cette technique des deux côtés, défiler vers le haut et vers le bas? Lorsque vous avez atteint 100 éléments après avoir fait défiler vers le bas, retirez le top 50. Vous les rechargez ou affichez-les à nouveau lorsque vous vous déplacez vers le haut.
Idée de savoir comment y parvenir:
$('.entry:lt(50)').remove(); // remove the top 50 .entry elements $('.entry:lt(' + (current_entries - 50) + ')').remove();
Rechargez les serveurs lorsque vous déplacez en haut de la div. J'espère que cela pourra aider.