问题标签 [service-worker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1881 浏览

requirejs - ServiceWorker 中的 RequireJS

在范围内使用 RequireJS 导入外部库的正确方法是什么ServiceWorker

在 WebWorkers 的范围内,我们可以importScripts() 在 web worker 中使用 RequireJS在我们可以离线的 ServiceWorker 范围内如何解决?

我认为这ImportScript()会失败,然后需要将库搜索到Serviceworker缓存中,有什么建议吗?

非常感谢。

PD:我尝试创建标签“服务工作者”,但我没有足够的声誉;((我改用网络工作者)。

0 投票
3 回答
1067 浏览

javascript - 注册 ServiceWorker 返回 AbortError code:20

我已经开始使用ServiceWorkerGoogle Chrome v38。我已经设置#enable-experimental-web-platform-features并设置Trueabout:config我的本地主机以通过https://.

我的sw.js文件包含简单的例子:

和我的app.js文件:

我的控制台输出是:

任何想法如何解决这个问题?

0 投票
2 回答
10209 浏览

service-worker - 服务人员未注册

我正在尝试注册 Service Worker 并收到错误消息:

该页面使用 github 页面托管:https ://boopathi.in/sw-demo-iss 。源代码在这里https://github.com/boopathi/sw-demo-iss

我试图了解这意味着什么以及如何解决错误。

0 投票
2 回答
6182 浏览

service-worker - 如何在使用 Service Worker 时缓存 Google Maps 等 API

尝试在 Service Worker 中缓存 Google Maps API 响应。

源代码:https ://github.com/boopathi/sw-demo-iss/blob/gh-pages/sw.js

现在我正在使用 Maps API 将请求的所有 URL,但似乎是一种不好的方法,而且我无法缓存所有内容,我可以缓存某种类型的请求并响应相同类型的请求吗?

说,

是否可以'maps.googleapi.com/js'在获取注入最后使用的参数时缓存它?

0 投票
2 回答
5716 浏览

service-worker - 如何在没有单独的 JS 文件的情况下使用 ServiceWorker?

我们通过以下方式创建服务工作者

我们可以Workers在没有这样的外部文件的情况下创建新的,

通过使用 blob 创建 ServiceWorkers 的方法,我们将得到一个Security Errorbloburl 将是blob:chrome-extension...,并且 Service Workers 将不支持 origin 。

是否可以创建没有外部文件的服务工作者并将范围用作/

0 投票
1 回答
3343 浏览

service-worker - 如何阻止年长的服务人员?

下图显示安装了两个工作器 - 一个处于活动状态,另一个未处于活动状态(刚刚安装)。

两个正在运行的服务人员

  1. 注册一个服务工作者
  2. 更改service-worker.js并重新加载页面。
  3. 逻辑是服务工作者检查二进制差异并更新工作者的版本。

因此,一个新的 service worker 产生了一个新的版本 ID。但是为什么旧的一直在运行?以及如何关闭它?

这里sw.jshttps://gist.github.com/boopathi/57b7e8b6d657d55bdc7d

0 投票
1 回答
1538 浏览

javascript - 我们应该如何以及何时写入 Service Worker 中的缓存?

  • 缓存来自应用程序的所有请求,而无需明确指定urlsToCache. fetch所以我会在事件下缓存东西。
  • 响应来自缓存的请求。
  • 获取成功时更新缓存。

最初,

离线情况处理得很好。但这里的问题是连接速度慢。用户必须等到 fetch 超时或抛出错误才能从缓存中获取响应。

在缓存优先的情况下,提供的响应很好。但是这里的问题是当代码更新时。当/public/main.css通过 sw 服务更新时,在页面重新加载时仅提供缓存,不提供更新的内容。

我还尝试将 cache_name 修改为cache-v2from cache-v1(以便存在 sw 二进制差异并更新 sw 并且可以清除旧缓存),并cache-v1activate事件中清除。但它带来了新的问题,即两个 Service Worker 在同一时间同时运行Registration ID。有关这方面的更多信息,请参见另一个 SO 问题:如何阻止年长的服务人员?

0 投票
3 回答
5108 浏览

html - Service Worker 是打算取代 Appcache 还是与 Appcache 共存?

ServiceWorker是打算取代Appcache,还是打算两者共存?换句话说,appcache 是否即将被弃用?

0 投票
2 回答
2205 浏览

caching - 如何获取 ServiceWorker 缓存中元素的大小和/或数量?

ServiceWorker 是 Chrome 中可用的新 api。它让您做的许多事情之一是拦截网络请求并使用缓存版本进行响应。我正在实现一个“脱机”按钮,它可以动态地将内容添加到缓存中。我想向用户报告我正在使用多少空间,以及我在缓存中放入了多少条目。

是否可以查询缓存以获取其中的项目数?我可以报告缓存在其中的东西的总大小吗?

0 投票
1 回答
385 浏览

google-chrome - 针对服务人员的 Chrome M40 重定向错误的任何解决方法?

我们有从我们的媒体服务器重定向到 CDN 的图像,我试图从我的服务工作者逻辑中排除这些图像,以解决 Chrome 40 中的错误。在 Canary 中,同一个工作者能够正常工作。我认为有一个event.default()回退到标准行为,但我没有在 Chrome 的实现中看到这一点,并且阅读规范似乎目前的建议是只使用fetch(event.request).

所以我遇到的问题是我是否必须等到 99% 的所有用户迁移到 Chrome 41+ 才能在这种情况下使用服务人员,或者有什么方法可以让我选择退出某些请求?

我的逻辑核心如下: