在你的DOM中拥有大量元素真是太糟糕了吗?

时间:2010-06-16 05:03:05

标签: javascript jquery google-chrome jcarousel

I am making a real estate non interactive display for their shop window

我踢了jCarousel做我想要的事情:

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

这样可以正常工作,但似乎在前面的元素上调用jQuery的remove()导致了一个丑陋的颠簸。我不确定调用hide()是否会释放任何资源,因为该元素仍然存在(并且元素将在屏幕外显示)。

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

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

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

或者如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我找到了一个非常简单的修复方法!

只需将其传递给jCarousel的配置

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

                 carousel.remove(index); 

               }
            }

基本上,这只是一旦它变得不可见就会删除列表元素(滚动到负overflow: hidden区域,如果你愿意的话:))