如何管理DOM元素

我已经实现了无限滚动(即滚动条到达div底部时加载记录)。 它工作正常但在页面上加载太多记录后,页面变得太重并导致渲染速度慢。 实际上,我使用这种技术作为gridview的替代,所以,我如何在这种情况下管理繁重的DOM?

  1. 将DOM元素减少到最小。
  2. 最小化包装器的数量。
  3. 最小化对DOM元素的访问,包括( 雅虎建议 ):
    • 缓存对访问元素的引用
    • 更新节点“离线”,然后将它们添加到树中
    • 避免使用JavaScript修复布局
  4. 如果有任何可以减少的计算,比如获取行数(不要每次计算它,只需将新行的数量添加到当前),请将其缓存(memoization wikipedia

如果您对DOM元素集合进行任何类型的迭代,并且不使用jQuery进行迭代,请使用此( JavaScript模式的建议):

for (var iteration = 0, limit = lengthOfElements; iteration++; iteration < limit) 

要么

 for (var i = myarray.length; i--; ) 

也许在两边做这种技术,上下滚动? 向下滚动后达到100个项目时,请删除前50个。向上滚动时重新加载或再次显示它们。

如何实现这一目标的想法:

 $('.entry:lt(50)').remove(); // remove the top 50 .entry elements $('.entry:lt(' + (current_entries - 50) + ')').remove(); 

当滚动到div的顶部时,重新加载它们。 希望有所帮助。