找回密码
 立即注册
搜索

新闻速看科普 - Service Worker 入门指南


S W 简介S W 加速器的相关知识也可以到网站具体了解一下,有专业的客服人员为您全面解读,相信会有一个好的合作!https://www.tiandiapp.com/

本质上是一种能在浏览器后台运行的单独线程,它能够在页关闭后持续运行,能够拦截络请求并根据络是否可用来采取适当的动作、更新来自服务器的的资源,从而现拦截和加工络请求、消息推送、静默更新、事件同步等一系列功能,是
PWA 应用的核心技术之一。

与普通 JS 运行环境相比,S W 有如下特点:

法直接访问 DOM , 可通过 M 发送消息与页面通信。能够控制页面发送络请求。必须在 HTTPS 协议下运行。开发过程中可以通过使用。

本文将从应用角度,简单汇总下 S W 几个核心概念,包括:API、生命周期、U 机制、调试等。

生命周期S W 的生命周期完全单独于页。生命周期 ( --
- ):



其中,事件是 S W 获取的首个事件,并且只发生一次。

主要逻辑APIW('W') {由于 127001:8000 是所有测试 D 的 为了防止作用域污染,将安装前注销所有已生效的 S WWR() ( = { () {()}W('') })} ('注册成功')EL('', () = {安装回调的逻辑处理('安装成功')})EL('', () = {激活回调的逻辑处理('激活成功')})EL('',= {('抓取请求成功: ' + )})「U 机制」参考:??-CNWAPIEEU。??

EEU()
方法告诉事件分发器该事件仍在进行。这个方法也可以用于检测进行的任务是否成功。在服务工作线程中,这个方法告诉浏览器事件一直进行,直至
,浏览器不应该在事件中的异步操作完成之前终止服务工作线程。

「W」S W 一旦更新,需要等所有的终端都关闭之后,再重新打开页面才能激活新的 S
W,这个过程太复杂了。通常情况下,开发者希望当 S W 一检测到更新就直接激活新的 S
W。如果不想等所有的终端都关闭再打开的话,只能通过 W 的方法了。

S W 在全局提供了一个 W() 方法,W() 在
期间调用还是在之前调用并没有什么不同。一般情况下是在事件中调用它。

「() 方法」如果使用了 W 的方式跳过状态,直接激活了 S
W,可能会出现其他终端还没有受当前终端激活的 S W 控制的情况,切回其他终端之后,S W
控制页面的效果可能不符合预期,尤其是如果 S W 需要动态拦截第方请求的时候。

为了保证 S W 激活之后能够马上作用于所有的终端,通常在激活 S W 后,通过在其中调用
() 方法控制未受控制的客户端。() 方法返回一个 P,可以直接在
U() 方法中调用,如下代码所示:

EL('',= {U( ()(() = {返回处理缓存更新的相关事情的 P}))})如何处理 S W 的更新如果目前尚未有活跃的 SW ,那就直接安装并激活。如果已有 SW 安装着,向新的 U 发起请求,获取内容和和已有的 SW 比较。如没有差别,则结束安装。如有差别,则安装新版本的 SW(执行阶段),之后令其等待(进入阶段)。如果老的 SW 控制的所有页面 「全部关闭」,则老的 SW 结束运行,转而激活新的 SW(执行阶段),使之接管页面。

方法一:W问题:同一个页面,前半部分的请求是由 1
控制,而后半部分是由 2 控制。这两者的不一致性很容易导致问题,甚至页报错崩溃。

方法二:W + 刷新= WEL('', () = {() {}= ;();});问题:毫征兆的刷新页面的确不可接受,影响用户体验。

方法:给用户一个提示大致的流程是:

浏览器检测到存在新的(不同的)SW 时,安装并让它等待,同时触发事件。我们监听事件,弹出一个提示条,询问用户是不是要更新 SW。如果用户确认,则向处在等待的 SW 发送消息,要求其执行 W 并取得控制权。因为 SW 的变化触发事件,我们在这个事件的回调中刷新页面即可。问题:

弊端一:过于复杂。弊端二:刷新逻辑的现必须通过 JS 完成更新。如何调试


为了更熟练的运用 C D 调试 S W,首先需要熟悉以下这些选项:

「O」:复选框可以将 DT 切换至离线模式。它等同于 N 窗格中的离线模式。「U」:复选框可以强制 S W 线程在每次页面加载时更新。「B」:复选框可以绕过 S W 线程并强制浏览器转至络寻找请求的资源。「U」:按钮可以对指定的 S W 线程执行一次性更新。「P」:按钮可以在没有负载的情况下模拟推送通知。「S」:按钮可以模拟后台同步事件。「U」:按钮可以注销指定的 S W 线程。「S」:告诉当前正在运行的 S W 线程的安装时间,链接是 S W
线程源文件的称。点击链接会将定向并跳转至 S W 线程来源。「S」:告诉 S W 线程的状态。此行上的数字指示 S W 线程已被更新的次数。如果启用 复选框,接下来会注意到每次页面加载时此数字都会增大。在状态旁边会看到按钮(如果 S W 线程已停止)或按钮(如果 S W 线程正在运行)。S W 线程设计为可由浏览器随时停止和启动。使用按钮明确停止 S W 线程可以模拟这一点。停止 S W 线程是测试 S W 线程再次重新启动时的代码行为方式的绝佳方法。它通常可以揭示由于对持续全局状态的不完善假设而引发的错误。「C」:告诉 S W 线程作用域的原点。如果已启用复选框,
按钮将非常用。在此复选框启用时,系统会列出所有注册的 S W 线程。如果这时候点击正在不同标签中运行的 S W 线程旁的按钮,C 会聚焦到该标签。总结完整流程

应用场景基于
可以现拦截和处理络请求、消息推送、静默更新、事件同步等服务。


离线缓存:配合 CS 可以将应用中不变化的资源或者很少变化的资源长久的存储在用户端,提升加载速度、降低流量消耗、降低服务器压力,提高请求速度,让用户体验更加丝滑。消息推送:激活沉睡的用户,推送即时消息、公告通知,激发更新等。如资讯客户端、即时通讯工具、5游戏等运营产品。事件同步:确保端产生的任务即使在用户关闭了页面也可以顺利完成。如邮件客户端、即时通讯工具等。定时同步:周期性的触发S W脚本中的定时同步事件,可借助它提前刷新缓存内容。结合CS、 P API 和 N API。参考链接:

??-USWAPIS_W_API。????6844903792522035208。????--。??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册