你的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
区域,如果你愿意:))