web worker 能否被浏览器静默杀死?
以下发生在 iOS 中的移动/桌面 safari 和移动 chrome 中
当使用 pdf.js 渲染多个 pdf(它使用 web worker 下载和渲染 pdf)时,一些 web worker 随机丢失。 它随机发生,当发生时,它发生在不同的 pdf 上。
此外,在代码调试时(我们将消息发回主线程进行调试),发现 web worker 在代码的不同位置停止工作。
这很难追查问题,因为
- 它默默地失败了,没有任何错误
- 在 safari 中,没有任何开发工具可以检查 web worker 状态。与 chrome 不同,有“线程”部分可以查看正在使用的线程。
- web worker api 没有任何关闭/终止事件供我们在它被杀死时记录
任何建议都会很棒!
最佳答案
看来 Safari 浏览器有问题。建议向 vendor 提交错误报告。 Safari 存在以下问题:由于“过度”内存使用或 JIT 编译错误 (https://bugs.webkit.org/show_bug.cgi?id=153317),工作程序执行可能会被 GC 终止 (https://bugs.webkit.org/show_bug.cgi?id=138038)。
iOS 中的 Chrome 与 Safari 浏览器相同( https://developer.chrome.com/multidevice/ios/overview ),因此前者的问题大多是相同的问题。
所以回答你的问题:
Can web worker be killed off by browser silently?
是的,可以。
关于javascript - web worker 会被浏览器悄悄杀死吗? (pdf.js 问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38931642/