在JavaScript中是否有任何方法可以在运行时处理低内存条件?

时间:2011-12-20 19:20:26

标签: javascript webkit low-memory

如果您的Web应用程序必须在嵌入式或低内存设备上运行,那么JavaScript中是否有任何工具可以在运行时管理低内存条件,以便您可以使用尽可能多的内存来缓存数据,但是能够可靠地清除此类内存根据需要缓存?

一个示例是具有本地逻辑数据存储的应用程序,例如它使用的数据对象映射,而不是重复在服务器上发出新请求。我希望能够将该缓存填充到可在运行时在我的JavaScript应用程序中确定的水印。

到目前为止我还没有找到任何东西,但我希望我只是遗漏了一些东西。

2 个答案:

答案 0 :(得分:3)

没有。浏览器不会向JavaScript公开内存使用情况统计信息。

如果您正在尝试实现缓存,那么最好不要利用浏览器的缓存(例如,在AJAX响应中使用Expires:标头),而不是尝试在JS中实现自己的缓存。

答案 1 :(得分:1)

您可以使用localstorage或IndexDB为您缓存结果(在大多数设备/浏览器上,实际的大小限制是众所周知的),因此您无需了解javascript中的内存消耗。

如果您使用的是phonegap(http://www.phonegap.com),则可以在本机代码中轻松地记录内存警告并将其发送到javascript。我在几种情况下做到了这一点,当有可能清理DOM并在以后需要时重新计算它。