Javascript 检测用户启动的页面卸载与浏览器崩溃
我有一些在桌面和移动设备上运行的内存密集型WebGL代码。用户可以添加/删除WebGL模块,从而更改页面的内存需求。在低功耗设备上,用户可能会使自己处于不良状态。他们试图加载页面,但由于加载的模块太多,页面内存不足。页面崩溃。我正在努力为用户提供一种从该场景中恢复的方法 我的恢复解决方案的一些高级伪代码如下所示:Javascript 检测用户启动的页面卸载与浏览器崩溃,javascript,mobile,Javascript,Mobile,我有一些在桌面和移动设备上运行的内存密集型WebGL代码。用户可以添加/删除WebGL模块,从而更改页面的内存需求。在低功耗设备上,用户可能会使自己处于不良状态。他们试图加载页面,但由于加载的模块太多,页面内存不足。页面崩溃。我正在努力为用户提供一种从该场景中恢复的方法 我的恢复解决方案的一些高级伪代码如下所示: 在初始化期间,为每个模块的会话存储写入一个标志。该标志表示给定模块尚未加载 如果一个模块在存储器中已经有一个标志,不要尝试加载它 对于其他模块-尝试加载 在每个模块加载时,清除其标志
- 在初始化期间,为每个模块的会话存储写入一个标志。该标志表示给定模块尚未加载
- 如果一个模块在存储器中已经有一个标志,不要尝试加载它
- 对于其他模块-尝试加载
- 在每个模块加载时,清除其标志
window.addEventListener('unload', function() { /* clear flags here */ });
这一切在桌面环境中似乎都很好,但在测试移动设备时,我发现浏览器经常会自动刷新页面,而不是崩溃。在Safari中,我看到一条错误消息:
“此网页出现问题,因此已重新加载。”
是否可以检测手动页面刷新与“浏览器错误恢复”刷新? 据我所知,答案是‘否’,因为在这两种情况下,我只有一个窗口卸载事件可以处理