首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

service worker 使用

service worker 简介 service worker 的功能和特性可以总结为以下几点: service worker 是一个独立 worker 线程,独立于当前网页进程,有自己独立的 worker...(); }); service worker 生命周期 service worker 工作流程 service worker 基于注册、安装、激活等步骤在浏览器 js 主线程中独立分担缓存任务。...旧的 Service Worker 脚本不再控制着页面,之后会被停止。 激活成功后 service worker 可以控制页面了,刷新页面可以查看 service worker 的工作成果。...service worker 事件 install: service worker 安装成功后被触发的事件,在事件处理函数中可以添加需要缓存的文件。...示例 这个网站记录了很多 service worker demo。 参考文档 lavas Service Worker API-MDN 服务工作线程 Service Worker 更新机制

1.3K31
您找到你想要的搜索结果了吗?
是的
没有找到

Xss Via Service Worker

Service Worker - xss...Service Worker下文简称sw,在我的理解看来就类似于一个filter,是介于服务器与客户端之间的一个中间人,它会拦截当前网站的所有请求,根据其编写的逻辑,在请求需要转发给服务器时进行转发,否则就使用离线缓存...sw它算是一个独立的,运行在浏览器后台的脚本,因此用它来执行消耗大资源的程度时并不会对主线程造成阻塞;Service Worker 是一个浏览器中的进程而不是浏览器内核下的线程,因此它在被注册安装之后,...sw.js: this.addEventListener('install', function (event) { console.log('Service Worker install'); }...fetch事件做的是每当sw向服务器发起请求的时候这个事件就会被触发,当然了有一个限制就是页面的路径不能大于 Service Worker 的 scope,不然 fetch 事件是无法被触发的。

38520

【译】理解Service Worker

此后,稍有人再赞同使用它,取而代之的是Service WorkerService Worker带来的离线可用解决方案更加符合未来发展趋势。...Service Worker是一种在浏览器环境当中于一个持久的背景进程当中执行代码的方法。被执行的代码时事件驱动的,也就是说驱动一个Service Worker的行为的,是在其中产生的事件。...然而想要开始利用Service Worker,你需要先实现你的web应用明面上的功能,然后再于其中注册Service Worker。...在Chrome开发者工具中查看一个被注册的Service Worker 上面的代码还会定义你的Service Worker的作用范围。...Worker已经注册好了,就该轮到实现事件处理逻辑,监听Service Worker生命周期当中的各种事件。

96430

Service Worker 入门指南

Worker 控制的情况,切回其他终端之后,Service Worker 控制页面的效果可能不符合预期,尤其是如果 Service Worker 需要动态拦截第三方请求的时候。...「Update」:按钮可以对指定的 Service Worker 线程执行一次性更新。 「Push」:按钮可以在没有负载的情况下模拟推送通知。 「Sync」:按钮可以模拟后台同步事件。...「Source」:告诉当前正在运行的 Service Worker 线程的安装时间,链接是 Service Worker 线程源文件的名称。...点击链接会将定向并跳转至 Service Worker 线程来源。 「Status」:告诉 Service Worker 线程的状态。...CacheStorage 可以将应用中不变化的资源或者很少变化的资源长久的存储在用户端,提升加载速度、降低流量消耗、降低服务器压力,提高请求速度,让用户体验更加丝滑 消息推送:激活沉睡的用户,推送即时消息、公告通知

1.7K30

Service Worker 全面进阶

继续~ Service Worker 讲道理是由两部分构成,一部分是 cache,还有一部分则是 Worker。...所以,SW(Service Worker) 本身的执行,就完全不会阻碍当前 js 进程的执行,确保性能第一。那 SW 到底是怎么工作的呢?...后台进程: SW 就是一个 worker 独立于当前网页进程。...记住,下面的部分是在另外一个 js 中的脚本,使用的是 worker 的编程方法。如果,有同学还不理解 worker 的话,可以先去学习一下,这样在后面的学习中才不会踩很深的坑。...对于删除也是一样的道理,如果你不显示删除,它会一直存在的。不过,浏览器对于每个域名的 Cache Object 数量是有限制的,并且,会周期性的删掉一些缓存信息。

3.4K10

Service Worker初体验

但是service worker可以通过postMessage与页面之间通信,把消息通知给页面,如果需要的话,让页面自己去操作DOM。...Service Worker的生命周期 Service worker拥有一个完全独立于Web页面的生命周期。要让一个service worker在你的网站上生效,你需要先在你的网页中注册它。...在激活之后,service worker将接管所有在自己管辖域范围内的页面,但是如果一个页面是刚刚注册了service worker,那么它这一次不会被接管,到下一次加载页面的时候,service worker...这是一个双向的过程,页面可以发消息给service workerservice worker也可以发送消息给页面,由于这个特性,可以将service worker作为中间纽带,使得一个域名或者子域名下的多个页面可以自由通信...('servcie worker 注册失败')}); } 在上述代码中,注册了service-worker.js作为当前路径下的service worker

1.1K100

Service Worker最佳实践

Service Worker最佳实践 1 Service Worker介绍 Service Worker是一项比较新的Web技术,是Chromium团队在吸收了ChromePackaged App的Event...2 Service Worker工作原理 Service Worker技术核心是Service Worker脚本,它 是一种由Javascript编写的浏览器端代理脚本。...前端页面向内核发起注册时会将脚本地址通知内核,内核会启动独立进/线程加载Service Worker脚本并执行Service Worker安装及激活动作。...每当已安装的Service Worker有管辖页面被打开时,便会触发Service Worker脚本更新,当上次脚本更新写入Service Worker数据库的时间戳与本次更新超过24小时,便会忽略本地网络...因为shouldInterceptRequest从内核通知到app,需要统一在File线程中排队并经历好几个线程的中转到达app,对于资源并发请求较少的页面来说,这种瓶颈可能并不明显,对于页面较复杂并发请求较多的页面来说

2.2K10

Angular 里的 Service Worker

从 5.0.0 版本开始,Angular 附带了一个 Service Worker 实现。...Service Worker 会尽可能节省带宽。 仅当资源发生更改时才会下载资源。 为了支持这些行为,Angular Service Worker 从服务器加载一个清单文件。...当部署应用程序更新时,清单的内容会发生变化,通知 Service Worker 应该下载并缓存应用程序的新版本。 此清单是从名为 ngsw-config.json 的 CLI 生成的配置文件生成的。...除了向浏览器注册 Angular Service Worker 之外,这还使得一些服务可用于注入,这些服务与 Service Worker 交互并可以用来控制它。...例如,应用程序可以要求在有新更新可用时得到通知,或者应用程序可以要求 Service Worker 检查服务器是否有可用更新。

81620

Service Worker 缓存文件处理

交代背景 前段时间升级了一波Google Chrome,发现我的JulyNovel站点Ctrl+F5也刷新不了,后来发现是新的Chrome已经支持Service Worker,而我的JulyNovel也满足...所以这里是有点小问题的,毕竟我服务器更新了,你service worker 没给我更新缓存,就说不过去了。 生命周期 特地跑到Google Develop去看了下究竟是怎么运转的。...Service Worker生命周期的意义 1.实现离线优先(这个不谈,没网也能搞事?这妥妥的Native的能力啊) 2.允许新服务工作线程自行做好运行准备,无需中断当前的服务工作线程。...install 根据我的理解,这个环节只在第一次打开网站时加载,一系列操作保证其原子性(要么可用,要么废弃) Activate service worker被激活,某些请求就会变成 from ServiceWorker...更新service worker 这里就是解决问题的关键了。

1.3K30

如何与 Service Worker 通信

Service Worker 很棒。它们使 Web 开发人员可以实现以前原生应用专有的类似功能。这类功能是例如推送通知或后台同步的离线功能。 它们是渐进式 Web 应用的核心。...Service Worker 与 Web Worker 如果你查看 Service Workers 的 API,将会看到 Web WorkerService Worker 有非常相似的接口。...Service Worker vs Web Worker Service Worker 可以拦截请求并将其替换为自己缓存中的项目,因此它们的行为就像是代理服务器。...如何与 Service Worker 通信 选择要向其发送消息的 Service Worker 对于任何来源,都可以有多个 Service Worker。...我用此技术在渐进式 Web 应用中显示更新通知,我在这篇文章(https://felixgerschau.com/create-a-pwa-update-notification-with-create-react-app

1.3K20

页面守护者:Service Worker

Service Worker的身份 Service的意思是服务,Worker的意思是工人,那么Service Worker的意思就是服务员。...毕竟给Service Worker的权利较大,可以直接截取和返回用户的请求,所以了于安全考虑,目前只能在HTTPS环境下才能使用Service Worker。 浏览器支持 ?...Worker is not supported in this browser.') } Service Worker文件:service-worker.js...在其它情况下(除了特殊情况:service worker会定时更新),Service worker处理暂停状态,不会占用内存和CPU资源。 例子运行效果 ? ? ?...作为一个页面与服务器之间中间层,Service Worker可以捕获它所负责的页面的请求,并返回相应资源,这使离线web应用成为了可能。这也是Service Worker被提出的一个重要目的。

42330

页面守护者:Service Worker

Service Worker的身份 Service的意思是服务,Worker的意思是工人,那么Service Worker的意思就是服务员。...毕竟给Service Worker的权利较大,可以直接截取和返回用户的请求,所以了于安全考虑,目前只能在HTTPS环境下才能使用Service Worker。 浏览器支持 ?...Worker is not supported in this browser.') } Service Worker文件:service-worker.js...在其它情况下(除了特殊情况:service worker会定时更新),Service worker处理暂停状态,不会占用内存和CPU资源。 例子运行效果 ? ? ?...作为一个页面与服务器之间中间层,Service Worker可以捕获它所负责的页面的请求,并返回相应资源,这使离线web应用成为了可能。这也是Service Worker被提出的一个重要目的。

78200

谨慎处理 Service Worker 的更新

Service Worker 以其 异步安装 和 持续运行 两个特点,决定了针对它的更新操作必须非常谨慎小心。...因为它具有拦截并处理网络请求的能力,因此必须做到网页(主要是发出去的请求)和 Service Worker 版本一致才行,否则就会导致新版本的 Service Worker 处理旧版本的网页,或者一个网页先后由两个版本的...Service Worker 控制引发种种问题。...Service Worker (以下简称 SW)是 PWA 中最复杂最核心的部分,其中涉及的主要有 Caches API (caches.put, caches.addAll 等), Service Worker...worker registration:', e); });} 这里我们通过发送一个事件 (名为 sw.update,位于 emitUpdate() 方法内) 来通知外部,这是因为提示条是一个单独的组件

1.6K20

WorkBox 之底层逻辑Service Worker

我们能所学到的知识点 ❝ 前置知识点 service workers 能为我们带来什么 Service worker 的生命周期 Service worker 缓存策略 Service Worker 预缓存的陷阱...将显示一条消息,说明没有service worker正在「控制」该页面。...因为service worker「已经注册并处于活动状态」,它正在「控制」页面。将显示一个包含service worker作用域、当前状态和其 URL 的表单。...尽管在此origin上注册了一个service worker,但仍然会显示一条消息,说明没有当前的service worker。这是因为此页面不在已注册service worker的作用域内。...应用程序面板有一个名为Service Workers的面板,显示了当前页面的活动Service Worker。每个活动Service Worker都可以手动更新,甚至完全注销。

25320
领券