如果您的 Web 应用程序必须在嵌入式或低内存设备上运行,JavaScript 中是否有任何工具可以在运行时管理低内存条件,以便您可以使用尽可能多的内存来缓存数据,但能够可靠地清除此类缓存,例如必需的?
一个示例是具有本地逻辑数据存储的应用程序,例如它使用的数据对象的映射,而不是在服务器上重复发出新请求。我希望能够将该缓存填充到可以在我的 JavaScript 应用程序运行时确定的水印。
到目前为止我还没有找到任何东西,但我希望我只是错过了一些东西。
如果您的 Web 应用程序必须在嵌入式或低内存设备上运行,JavaScript 中是否有任何工具可以在运行时管理低内存条件,以便您可以使用尽可能多的内存来缓存数据,但能够可靠地清除此类缓存,例如必需的?
一个示例是具有本地逻辑数据存储的应用程序,例如它使用的数据对象的映射,而不是在服务器上重复发出新请求。我希望能够将该缓存填充到可以在我的 JavaScript 应用程序运行时确定的水印。
到目前为止我还没有找到任何东西,但我希望我只是错过了一些东西。
不会。浏览器不会向 JavaScript 公开内存使用统计信息。
如果您尝试实现缓存,您可能最好利用浏览器的缓存(例如,Expires:
在 AJAX 响应中使用标头),而不是尝试在 JS 中实现您自己的缓存。
您可以使用 localstorage 或 IndexDB 为您缓存结果(在大多数设备/浏览器上,实际大小限制是众所周知的),因此您无需知道 javascript 中的内存消耗。
如果您使用 phonegap (http://www.phonegap.com),您可以在本机代码中轻松获取内存警告并将它们发送到 javascript。当有可能清理 DOM 并在以后需要时重新计算它时,我在几种情况下这样做了。