你的DOM中有很多元素是不是很糟糕?

我正在为他们的商店橱窗制作房地产非交互式展示 。

我踢了jCarousel做我想做的事:

  • 每个AJAX添加面板
  • 接近当前集合的末尾,去和AJAX一些新面板并插入它们

这样可以正常工作,但是在前面的元素上调用jQuery的remove()会导致丑陋的碰撞。 我不确定调用hide()是否会释放任何资源,因为元素仍然存在(并且元素将在屏幕外无论如何)。

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

这将在Windows XP上的Google Chrome上运行,并且只会在液晶电视上显示。

我想知道,如果我找不到合理的解决方案来删除额外的DOM元素,它会让我的应用程序爬行,还是Chrome会做一些聪明的垃圾收集?

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

谢谢

您可以重用旧元素而不是删除它们并添加新元素吗?

我找到了一个最终非常简单的修复程序!

只需将其传递给jCarousel的配置即可

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

基本上,这只是在它变得不可见时立即删除列表元素(滚动到负overflow: hidden区域,如果你愿意:))