繁体   English   中英

管理屏幕外图像的内存

[英]Manage Memory of Off-screen Images

我有一个网页,我想使用html和javascript显示成千上万的图像。 在一张表中,每次一次只能看到大约24-30张图像(每行6张),所以我认为自己很聪明地编写了自己的JavaScript滚动条,例如向下滚动时,从2-3行开始构造屏幕的底部,并在图像附近动态加载图像,并删除可见区域顶部上方的2-3行(在整个表格行中使用javascript的remove子级)。 但是,这并没有节省我希望的RAM,看到几百行后,由于内存不足,浏览器经常崩溃。

我一直在寻找使浏览器可以释放那些对象但没有成功的方法。 我知道,在某些现代的实现中,您可以要求浏览器运行垃圾回收,但这并不是在所有浏览器中都存在,或者尚未得到完全支持。 我可以想像的一种破解方法是经过几十行,以编程方式重新加载页面,同时以某种方式保存状态(Cookie,本地存储或url中),但我非常希望将其设置为一个连续的页面并简单地释放由不再使用的图像。 正确的方法是什么?

hackartist,

您完全正确,基于滚动动态加载图像将是解决此问题的最佳方法。 但是,为什么要重新发明轮子呢? 您指的是延迟加载 jQueryEcho.js库都具有针对此问题的流行解决方案。

由于以上两种都是开源的:您可以自己参考它们的实现,为使它们变得更好而做出贡献,或者仅使用它们预先存在的工具!

另外,仅供参考,这是Stack Overflow上的一篇好文章,标题为“ 什么是JavaScript垃圾收集? ”,可以解释如何为JS实现垃圾收集。 这也是Mozilla开发人员网络上的标题为“ 内存管理 ”的参考,该参考说明了如何在不再需要时释放已分配的内存。

请让我知道,如果你有任何问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM