如何管理DOM元素
我已经实现了无限滚动(即滚动条到达div底部时加载记录)。 它工作正常但在页面上加载太多记录后,页面变得太重并导致渲染速度慢。 实际上,我使用这种技术作为gridview的替代,所以,我如何在这种情况下管理繁重的DOM?
- 将DOM元素减少到最小。
- 最小化包装器的数量。
- 最小化对DOM元素的访问,包括( 雅虎建议 ):
- 缓存对访问元素的引用
- 更新节点“离线”,然后将它们添加到树中
- 避免使用JavaScript修复布局
- 如果有任何可以减少的计算,比如获取行数(不要每次计算它,只需将新行的数量添加到当前),请将其缓存(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的顶部时,重新加载它们。 希望有所帮助。