问题标签 [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.
requirejs - ServiceWorker 中的 RequireJS
在范围内使用 RequireJS 导入外部库的正确方法是什么ServiceWorker
?
在 WebWorkers 的范围内,我们可以importScripts()
在 web worker 中使用 RequireJS。在我们可以离线的 ServiceWorker 范围内如何解决?
我认为这ImportScript()
会失败,然后需要将库搜索到Serviceworker
缓存中,有什么建议吗?
非常感谢。
PD:我尝试创建标签“服务工作者”,但我没有足够的声誉;((我改用网络工作者)。
javascript - 注册 ServiceWorker 返回 AbortError code:20
我已经开始使用ServiceWorker
Google Chrome v38。我已经设置#enable-experimental-web-platform-features
并设置True
了about:config
我的本地主机以通过https://
.
我的sw.js
文件包含简单的例子:
和我的app.js
文件:
我的控制台输出是:
任何想法如何解决这个问题?
service-worker - 服务人员未注册
我正在尝试注册 Service Worker 并收到错误消息:
该页面使用 github 页面托管:https ://boopathi.in/sw-demo-iss 。源代码在这里https://github.com/boopathi/sw-demo-iss
我试图了解这意味着什么以及如何解决错误。
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'
在获取注入最后使用的参数时缓存它?
service-worker - 如何在没有单独的 JS 文件的情况下使用 ServiceWorker?
我们通过以下方式创建服务工作者
我们可以Workers
在没有这样的外部文件的情况下创建新的,
通过使用 blob 创建 ServiceWorkers 的方法,我们将得到一个Security Error
bloburl 将是blob:chrome-extension...
,并且 Service Workers 将不支持 origin 。
是否可以创建没有外部文件的服务工作者并将范围用作/
?
service-worker - 如何阻止年长的服务人员?
下图显示安装了两个工作器 - 一个处于活动状态,另一个未处于活动状态(刚刚安装)。
- 注册一个服务工作者
- 更改
service-worker.js
并重新加载页面。 - 逻辑是服务工作者检查二进制差异并更新工作者的版本。
因此,一个新的 service worker 产生了一个新的版本 ID。但是为什么旧的一直在运行?以及如何关闭它?
这里sw.js
是https://gist.github.com/boopathi/57b7e8b6d657d55bdc7d
javascript - 我们应该如何以及何时写入 Service Worker 中的缓存?
- 缓存来自应用程序的所有请求,而无需明确指定
urlsToCache
.fetch
所以我会在事件下缓存东西。 - 响应来自缓存的请求。
- 获取成功时更新缓存。
最初,
离线情况处理得很好。但这里的问题是连接速度慢。用户必须等到 fetch 超时或抛出错误才能从缓存中获取响应。
在缓存优先的情况下,提供的响应很好。但是这里的问题是当代码更新时。当/public/main.css
通过 sw 服务更新时,在页面重新加载时仅提供缓存,不提供更新的内容。
我还尝试将 cache_name 修改为cache-v2
from cache-v1
(以便存在 sw 二进制差异并更新 sw 并且可以清除旧缓存),并cache-v1
在activate
事件中清除。但它带来了新的问题,即两个 Service Worker 在同一时间同时运行Registration ID
。有关这方面的更多信息,请参见另一个 SO 问题:如何阻止年长的服务人员?
html - Service Worker 是打算取代 Appcache 还是与 Appcache 共存?
ServiceWorker是打算取代Appcache,还是打算两者共存?换句话说,appcache 是否即将被弃用?
caching - 如何获取 ServiceWorker 缓存中元素的大小和/或数量?
ServiceWorker 是 Chrome 中可用的新 api。它让您做的许多事情之一是拦截网络请求并使用缓存版本进行响应。我正在实现一个“脱机”按钮,它可以动态地将内容添加到缓存中。我想向用户报告我正在使用多少空间,以及我在缓存中放入了多少条目。
是否可以查询缓存以获取其中的项目数?我可以报告缓存在其中的东西的总大小吗?
google-chrome - 针对服务人员的 Chrome M40 重定向错误的任何解决方法?
我们有从我们的媒体服务器重定向到 CDN 的图像,我试图从我的服务工作者逻辑中排除这些图像,以解决 Chrome 40 中的错误。在 Canary 中,同一个工作者能够正常工作。我认为有一个event.default()
回退到标准行为,但我没有在 Chrome 的实现中看到这一点,并且阅读规范似乎目前的建议是只使用fetch(event.request)
.
所以我遇到的问题是我是否必须等到 99% 的所有用户迁移到 Chrome 41+ 才能在这种情况下使用服务人员,或者有什么方法可以让我选择退出某些请求?
我的逻辑核心如下: