在崩溃之前检测浏览器中的内存耗尽
Detect memory exhaustion in the browser before it crashes
当 JavaScript 客户端应用程序使用过多内存时,浏览器将崩溃或抛出无法恢复或交换的异常,就像 80 年代一样。
浏览器是否发出信号表示它们几乎已达到选项卡的可用内存限制?
理想情况下,我希望能够在浏览器 运行 内存不足时捕获我可以在 JavaScript 中拦截的事件,以便自动回退到轻量级版本的应用程序或告诉我的用户去买一台新电脑 / phone.
我知道 Chrome 性能工具允许不精确地查询已用内存,这是第一步,但可能不足以检测内存限制。
不,不幸的是,没有跨浏览器的方法可以检测到这一点。 this answer.
对此进行了一些讨论
有 window.performance.memory
但那是 only available in Chrome。
我也不知道有什么真正好的解决方法。您或许可以检查旧浏览器或没有特定功能的浏览器 ("feature detection"),并建议使用旧浏览器的用户使用您的 "light" 版本,因为这些人最有可能拥有低-供电设备。
另一种可能是查看某些特定操作需要多长时间,如果花费的时间太长,则推荐精简版。又是一个非常直截了当的解决方案。
当 JavaScript 客户端应用程序使用过多内存时,浏览器将崩溃或抛出无法恢复或交换的异常,就像 80 年代一样。
浏览器是否发出信号表示它们几乎已达到选项卡的可用内存限制?
理想情况下,我希望能够在浏览器 运行 内存不足时捕获我可以在 JavaScript 中拦截的事件,以便自动回退到轻量级版本的应用程序或告诉我的用户去买一台新电脑 / phone.
我知道 Chrome 性能工具允许不精确地查询已用内存,这是第一步,但可能不足以检测内存限制。
不,不幸的是,没有跨浏览器的方法可以检测到这一点。 this answer.
对此进行了一些讨论有 window.performance.memory
但那是 only available in Chrome。
我也不知道有什么真正好的解决方法。您或许可以检查旧浏览器或没有特定功能的浏览器 ("feature detection"),并建议使用旧浏览器的用户使用您的 "light" 版本,因为这些人最有可能拥有低-供电设备。
另一种可能是查看某些特定操作需要多长时间,如果花费的时间太长,则推荐精简版。又是一个非常直截了当的解决方案。