图像加载多次,这是一个Firefox ou NivoSlider错误?

时间:2011-05-25 17:53:13

标签: jquery firefox firebug firefox4 nivo-slider

当我在每个标签中打开两个带有Nivo Slider的标签时,我发现firebug的网络标签显示每个幻灯片更改中同一图像的多个请购单。它将页面的大小(以mb为单位)和内存使用/分配增加到firefox.exe。过了一会儿,我的电脑变得非常慢,任务监视器中的内存分配高于1GB。

如何复制它: 1-在Firefox中的2个选项卡中打开http://nivo.dev7studios.com/(在3.6~5.0中测试) 2-在第二个标签中打开firebug的网板 3-重新加载第二个标签

here is the proof

4 个答案:

答案 0 :(得分:6)

我刚刚在FF 3.6中测试过 - 同样的问题。

查看文件http://nivo.dev7studios.com/scripts/nivo-slider/jquery.nivo.slider.js:84

//Set first background
slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');

还有第253,262,284行等。它会即时添加背景图像,因此浏览器应该一次又一次地请求它。幸运的是,服务器响应头304未修改。

答案是:NivoSlider。

答案 1 :(得分:2)

我在FF 4.0.1中打开一个标签时出现内存泄漏。 Chrome(12.0.742.100)也是如此,虽然没有FF那么糟糕。

似乎NivoSlider造成了这种泄漏。

答案 2 :(得分:1)

我们在我的工作中对此进行了测试,起初我们看到Firefox重新下载图像,就像原始海报所说的那样。但后来我们意识到了一些事情 - 如果你从未使用Firefox的/ Firebug工具将鼠标悬停在图像上,它就永远不会重新下载图像!

所以换句话说,由于滑块,它看起来没有发生。看起来只有在你开始使用Firefox / Firebug进行调查时才会发生。

所以我不认为这是一个问题。

答案 3 :(得分:1)

我遇到了与内存泄漏相同的问题。 看起来nivo毕竟不是那么棒。

经过一些尝试,我设法显着降低了负荷,至少根据萤火虫。

我做了两件事:

  • 为css中的所有滑块图像添加display:none - 我不认为这实际上做得太多,但它并没有伤害。我希望这会抑制初始负荷。
  • 在JS中,使用$(document).ready而不是$(window).load-理论上这应该在加载所有图像之前启动滑块

问题仍然没有完全解决,我得到一些奇怪的行为。 我只有4张照片。他们都开始加载。在某些时刻(我不知道原因,通常是第一次显示图像)2张图片再次加载(来自缓存)。在那之后,它工作正常。我把它打开了一个小时,没有新的装载。

总而言之,通过上述变化,我得到了2个额外的负载。与之前的情况相比(每当图像发生变化时都会出现新的负载)并不是那么糟糕。

我仍然无法找到这种行为的原因或解释。也许firefox会释放一些内存,以便不时再次加载图像?