相关疑难解决方法(0)

服务工作者的存储限制是多少?

大多数浏览器为localStorage提供每个域5MB的存储限制.服务工作者是否存在此类内存限制/限制?

我知道网络工作者(服务工作者所在的网站)没有这样的限制.但Web Workers并不完全用于资产缓存,而是更多地用于处理(因此CPU是主要关注点).

如果内存大小没有限制,那么设计糟糕的网站可能会使浏览器崩溃吗?

javascript service-worker progressive-web-apps

66
推荐指数
2
解决办法
2万
查看次数

服务工作者JavaScript更新频率(每24小时?)

根据MDN上的这个文档:

之后每24小时左右下载一次.它可能会更频繁地下载,但必须每24小时下载一次,以防止坏脚本长时间烦人.

Firefox和Chrome也是如此吗?或者更新到服务工作者javascript只在用户导航到网站时发生?

service-worker

63
推荐指数
1
解决办法
2万
查看次数

如何在初始化ServiceWorker时声明客户端以防止重新加载页面?

我无法绕过ServiceWorker 的Clients.claim API.根据我的理解(这里这里),我可以调用claim()服务工作者激活事件,以防止必须刷新页面以初始化ServiceWorker.我不能让它工作,但总是最终不得不刷新.这是我的代码:

服务工作者内部:

self.addEventListener('install', function (event) {

  self.skipWaiting();

  event.waitUntil(caches.open(CURRENT_CACHE_DICT.prefetch)
    .then(function(cache) {
      var cachePromises = PREFETCH_URL_LIST.map(function(prefetch_url) {
        var url = new URL(prefetch_url, location.href),
          request = new Request(url, {mode: 'no-cors'});

        return fetch(request).then(function(response) {
          if (response.status >= 400) {
            throw new Error('request for ' + prefetch_url +
              ' failed with status ' + response.statusText);
          }
          return cache.put(prefetch_url, response);
        }).catch(function(error) {
          console.error('Not caching ' + prefetch_url + ' due to ' + error);
        }); …
Run Code Online (Sandbox Code Playgroud)

javascript service-worker

1
推荐指数
1
解决办法
800
查看次数