3

当我打开两个带有 Nivo Slider 的选项卡时,我观察到 firebug 的 net 选项卡在每个幻灯片更改中显示同一图像的多个请求。它增加了页面的大小(以 mb 为单位)和内存使用/分配到 firefox.exe。一段时间后,我的电脑变得很慢,任务监视器中的内存分配高于 1gb。

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

这是证据

4

4 回答 4

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 Not modified。

答案是:NivoSlider。

于 2011-05-25T18:59:07.050 回答
2

在打开一个选项卡的情况下,我在 FF 4.0.1 中出现内存泄漏。Chrome (12.0.742.100) 也是如此,虽然不如 FF 差。

似乎是 NivoSlider 导致了这种泄漏。

于 2011-06-19T05:40:17.937 回答
1

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

所以换句话说,看起来这并没有因为滑块而发生。看起来只有当您开始使用 Firefox/Firebug 进行调查时才会发生这种情况。

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

于 2012-05-31T14:51:47.370 回答
1

我在内存泄漏方面遇到了同样的问题。看起来nivo毕竟不是那么好。

经过一番尝试,我设法显着降低了负载,至少根据萤火虫的说法。

我做了两件事:

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

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

因此,总而言之,通过上述更改,我得到了 2 个额外的负载。与我以前的相比(每当图像更改时都会重新加载),它还不错。

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

于 2012-12-27T23:25:50.230 回答