2013-05-19 15 views
6

我有一个网站,有很多大的照片,总是在html中设置。像在.remove()之后,图像对象是否保留在RAM中?

<div><img src="sample1.jpg"></div> 
<div><img src="sample2.jpg"></div> 
<div><img src="sample3.jpg"></div> 
<div><img src="sample4.jpg"></div> 
.... 

这使得网站非常缓慢。即使.animate()函数也可以解决问题。所以我决定只加载5张图片,其他图片则根据要求加载。问题是,当太多的图片加载时,网站又变得缓慢了。问题:

如果我使用.remove()函数删除所显示图像周围的所有图像,图像是否仍然保留在RAM中,或者当我添加图像时它们将被删除并从缓存中再次获取?

希望这个问题是清楚的, 在此先感谢。

+0

我会希望进行删除的图像被垃圾回收,从而除去在某一点后不久,但不一定马上。您是否尝试过使用浏览器的开发工具来监控内存使用情况? – nnnnnn

+0

我正在使用Firefox。萤火虫或网页开发者工具列有吗? –

+0

据我所知,当创建一个图像对象时,图像被下载并以二进制形式存储,几乎作为一个常规变量,并应遵循垃圾收集的正常规则,一旦没有更多的参考对象。 – adeneo

回答

1

不能强行删除活动内存使用Javascript/jQuery的浏览器什么,但像其他的用户已经在使用时的一个.remove()已删除的元素,然后暴露垃圾回收说。

我认为它不太可能是造成你所看到的放缓和它更有可能的问题与您的一些其他脚本代码这些图像。

我假设通过减慢你的意思是像指示内存/ CPU使用率的页面滞后。

如果问题出在实际的页面加载时间,那么问题在于其他地方,并且与被占用的RAM无关,但更有可能是由于图像的加载时间,如果可能的话,在服务器端删除不必要的图像。

相关问题