Javascript DOM中有成堆的元素这么糟糕吗?

Javascript DOM中有成堆的元素这么糟糕吗?,javascript,jquery,google-chrome,jcarousel,Javascript,Jquery,Google Chrome,Jcarousel,我已经开始做我想做的事: 根据AJAX添加面板 在当前集合的末尾,转到AJAX并插入一些新面板 这很好,但是在前面的元素上调用jQuery的remove()似乎会导致一个不好的碰撞。我不确定调用hide()是否会释放任何资源,因为该元素仍然存在(并且该元素仍将离开屏幕) 我在回调中看到并尝试了carousel.reset()。它只是清除所有元素 这将在WindowsXP上的谷歌浏览器上运行,并且只在液晶电视上显示 我想知道,如果我找不到一个合理的解决方案来删除额外的DOM元素,它会让我的应用

我已经开始做我想做的事:

  • 根据AJAX添加面板
  • 在当前集合的末尾,转到AJAX并插入一些新面板
这很好,但是在前面的元素上调用jQuery的
remove()
似乎会导致一个不好的碰撞。我不确定调用
hide()
是否会释放任何资源,因为该元素仍然存在(并且该元素仍将离开屏幕)

我在回调中看到并尝试了
carousel.reset()
。它只是清除所有元素

这将在WindowsXP上的谷歌浏览器上运行,并且只在液晶电视上显示

我想知道,如果我找不到一个合理的解决方案来删除额外的DOM元素,它会让我的应用程序陷入困境,还是Chrome会做一些巧妙的垃圾收集

或者,你会如何解决这个问题


谢谢

你能重复使用旧元素而不是删除它们并添加新元素吗?

我想出了一个非常简单的解决方案

只需将其传递给jCarousel的配置

itemFirstOutCallback: {
               onAfterAnimation: function(carousel, li, index, state) {
                 if (state === 'init') return;

                 carousel.remove(index); 

               }
            }

基本上,这只是在列表元素不可见时删除它(滚动到负
溢出:隐藏
区域,如果你愿意:)

可能,但我使用的是第三方jQuery插件,我不确定如何让它做到这一点。你有什么建议吗?我们在这里讨论了多少要素?如果他们没有数据清理会更快,如果他们有数据/处理程序(你可以通过使用委托或live来避免),在效率方面会有点不同。@Nick Craver谢谢你的光临。如果您查看上一个问题中的链接,您将看到我是如何实现向jCarousel添加新项的。我使用它自己的
add()
方法。但是,如果我执行
$(“#listing li:lt(5)”).remove()
或类似的清理操作,它会使列表向上移动,以填补前面列表项的空白。也许我可以循环遍历每个AJAX请求的前10个左右,获得总高度,然后将ul的
padding top
设置为该高度(并删除空间中的那些)。听起来很笨重。我希望你能给我一个更好的解决方案!再次感谢。