在 Android 上的 Chrome/Opera 浏览器中加载 Service Worker 时出现 "failed to load resources :ERR_INSUFFICIENT_RESOURCES" 错误

Getting "failed to load resources :ERR_INSUFFICIENT_RESOURCES" error while loading Service Worker in Chrome/Opera browsers on Android

我正在使用 Service Worker 制作一个离线 运行 的混合应用程序,因此我将我的 SW 中所有必要的链接添加到 运行 我的离线应用程序。

它在 Chrome 和桌面 Opera 中工作正常,但在 Android 我在两个浏览器中都收到此错误 "failed to load resources ERR_INSUFFICIENT_RESOURCES"。

我添加了大约 1000 个链接,其中包括要缓存的各种 .css、.js、.html 和图像文件。在大约 10-20 个文件之后,对于剩余的文件,每个文件都会出现此错误,并且浏览器会崩溃。

在 chrome://crashes 中检查时,我可以看到正在注册的崩溃并显示 "The size on the local storage is 453KB (varies randomly for every crash)",但在我注册 SW 之前我什至没有使用本地存储。

在 Android 浏览器中使用 SW 是否有任何限制,或者有一些其他问题阻止它注册 SW。

终于找到问题了,问题是当SW一次请求1000个文件时,手机浏览器无法一次处理那么多请求,因此出现错误。

我们一般使用cache.addAll(urlsToCache),需要递归调用cache.add(urlsToCache[index++])