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