硬刷新后注册 Service Worker

2024-05-12

每当硬刷新后重新加载具有 Service Worker 的 Web 应用程序时(Ctrl + F5例如,对于 Chrome),Service Worker 之后无法注册。

根据文档W3C https://w3c.github.io/ServiceWorker/#navigator-service-worker-controller

注意:navigator.serviceWorker.controller 如果请求返回 null 是强制刷新(shift+刷新)。返回的ServiceWorker对象 从这个属性 getter 中,代表相同服务工作者的是 相同的对象。

那么问题来了:Service Worker 注册之后真的不可能吗?硬刷新被执行?我正在检查 Service Worker 是否存在navigator.serviceWorker.controller。请参阅随附的 GIF,其中显示了与https://googlechrome.github.io/samples/service-worker/basic/ https://googlechrome.github.io/samples/service-worker/basic/ page


阻止硬刷新似乎很难,但您可以检测到应该使用工作人员但当前尚未使用。然后您可以使用它重新加载。

navigator.serviceWorker.getRegistration().then(function(reg) {
  // There's an active SW, but no controller for this tab.
  if (reg.active && !navigator.serviceWorker.controller) {
    // Perform a soft reload to load everything from the SW and get
    // a consistent set of resources.
    window.location.reload();
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

硬刷新后注册 Service Worker 的相关文章

  • javascript中如何无限循环

    我尝试使用 0 到 100 和 100 到 0 之间的 while 进行无限循环 但浏览器崩溃了 有没有办法清除浏览器内存 这是我的代码 var a 0 var flag true while true if a lt 100 flag t
  • 如何将 Chrome 版本的网页提供给 python?

    我试图让用户轻松地从网页输入数字 我能想象的最简单的事情就是让他们提供一个 url 和一个与该号码关联的 xpath 然后我的代码可以去抓取数字 xpath 的概念 对于非编码人员来说 并不为人所知 但使用 Chrome 的 Inspect
  • 如何使用nodeJS SFTP客户端列出所有子目录?

    有趣的节点 JS ssh2 sftp client 我想列出给定路径中的所有目录及其子目录 let sftp new ssh2SftpClient console log sftp sftp connect host xx xxx xxx
  • Jqplot 中两个系列数据的不同颜色条

    我想知道如何在 Jqplot 中为两个系列制作不同的颜色条 如果我只有一个系列数据 它的工作原理如下图所示 红色和绿色基于其值 但是 如果我有两个系列数据 我无法为每个系列数据配置两个系列颜色 目前我只能做这个图 我希望两个系列图可以根据其
  • 如何监控浏览器中发出的所有自定义事件?

    我想监视网络浏览器中触发的所有自定义事件 任何标准浏览器都可以 需要明确的是 我知道您可以附加事件处理程序来查看何时触发 通常 事件 但如何可靠地检测嵌入对象或 jQuery 脚本是否触发自定义事件 我可以重构浏览器源代码来挂钩事件循环 但
  • Vue js按钮冻结dom

    我试图在按下按钮时切换包含加载动画的跨度 直到使用 v if 函数完成 但是当我按下按钮时 DOM 冻结并且 span 元素保持不变 直到函数调用结束 如何让 DOM 不冻结并显示加载图标 非阻塞按钮按下可能是一个解决方案 HTML
  • 过滤器返回 true 或 false

    我正在使用过滤器在 data it 返回对象中查找 id 它返回的对象不是 true 或 false 如果我怎样才能返回 true 或 falseval recoredId valueId var hasMatch data filter
  • 为什么新行上的 return 语句不返回任何值? [复制]

    这个问题在这里已经有答案了 考虑以下情况 function func1 return hello world function func2 return hello world console log func1 console log f
  • jQuery 问题:它的真正含义是什么?

    function window undefined jquery code jQuery window 它到底意味着什么 是不是也意味着 document ready 或者只是两种不同的东西 已经有两个答案 但这是我对代码缺失端的猜测 fu
  • JQuery _renderItem 没有被调用

    我正在尝试使用 renderItem 函数创建自定义 ui menu item 元素 但经过可能尝试后 我什至无法调用该函数 自动完成功能正在工作 但就像 renderItem 函数不存在一样 这是我的脚本部分
  • 检测 JavaScript 中的焦点丢失

    我希望能够检测 JavaScript 中任意元素何时失去焦点 因此我可以构建一个类似于 jEdit 的内联编辑工具 我不能依赖 jQuery 来实现这个库 所以我需要一个本机方法来完成它 我查看了 onblur 这似乎是正确的事情 但 MD
  • 如何混淆或使 JavaScript 文件不可读?

    我的应用程序中有 JavaScript 脚本 其中包含 JavaScript 和 jQuery 函数 所有用户与我的应用程序的交互都是动态的 并且通过 jQuery 传递到应用程序 我意识到 当我在客户端运行我的应用程序时 客户端可以通过查
  • jQuery live() 和ready() 之间的区别?

    两者之间的确切区别是什么live and ready 编辑 发现die http docs jquery com Events die是相反的live ready http docs jquery com Events ready让你注册一
  • Jest - 语法错误:无法在模块外部使用 import 语句

    我在用jest 24 9 0无需任何配置 从 create react app 全局安装 在这些文件中我使用 es6 模块 使用时没有报错 test react scripts test 但是当我开始使用时jest with test je
  • Flot 0.8.2 折线图 - 颜色错误

    我正在使用 Flot 折线图并设置它们的颜色 我发现了一个奇怪的错误 在前 3 种颜色之后 绘图对所有其他线条使用最后一种颜色 这不是正确的行为 更有趣的是图例显示了正确的颜色 这是一个已知的错误 var dataSet label d1
  • NodeJS 中的缩进多行日志记录

    我要打印JSON stringify d 反对控制台 将上下文作为 Mocha 测试套件输出的一部分 当测试缩进时 我希望对象日志行向右缩进足够远 例如 3 4 个制表符空格 以便它们可以识别地位于右侧describe group 我怎样才
  • 尽管给出了供应商 ID,Web 串行 api 显示“未找到兼容设备”

    Windows 8 1 Chrome v91 0 4472 164 我已根据设备管理器验证了供应商和产品 ID 该设备是使用 Ch340 驱动程序的 Arduino UNO 它在设备管理器中的端口 COM 和 LPT 下列为 USB SER
  • Javascript 替换为正则表达式无法正常工作

    我正在尝试使用正则表达式验证名称 正则表达式阻止用户连续输入 2 个空格或点 这是我的代码 function test input var regex A Za z 0 1 s 0 1 input value input value rep
  • 在64位环境中加载32位进程

    我有以下几个问题 CHM 是 编译的 HTML 文件 我的 CHM 文件有一个启动 32 位应用程序的链接 CHM 文件是用 Javascript 编码的 这在 32 位操作系统环境中运行良好 但这在 64 位操作系统环境中不起作用 原因是
  • 如何制作饼图聚合数据源?

    Using 适用于 ASP NET MVC 的 Kendo UI 完整版 http www kendoui com 版本 2013 3 1119 2013年11月20日 如果我有这段代码 status chart kendoChart da

随机推荐

  • mod_http_upload - 使用 Ruby on Rails 上传 HTTP 文件 (XEP-0363)

    我想在我的聊天应用程序中的用户之间传输图像 我正在使用 ejabberd 服务器进行聊天 据我发现 可以做到这一点的模块是mod http upload HTTP 文件上传 XEP 0363 我不知道如何实现这一点 任何人都可以帮助我弄清楚
  • 如何安全地将对象(尤其是 STL 对象)传入和传出 DLL?

    如何将类对象 尤其是 STL 对象 传入和传出 C DLL 我的应用程序必须以 DLL 文件的形式与第三方插件交互 并且我无法控制这些插件是使用什么编译器构建的 我知道 STL 对象没有保证的 ABI 并且我担心这会导致我的应用程序不稳定
  • 如何使用 JSX 和 Lodash 重复一个元素 n 次

    我在我的应用程序中使用 React JSX 和 Lodash 来实现我想要的 我需要根据条件重复某个元素一定次数 我该怎么做呢 这是元素 span span 我这样分配它 let card if data hand 8 or more ca
  • 如何导入 .tsv 文件

    我需要读取一个表 tsvR 中的文件 test lt read table file drug info tsv Error in scan file what nmax sep dec quote skip nlines na strin
  • Qt Creator:如何区分 win32 和 win64

    我必须在 pro 文件中执行类似的操作 win32 LIBS L 3rdparty libusb win32 lib msvc llibusb else win64 LIBS L 3rdparty libusb win32 lib msvc
  • API Gateway POST 方法在测试期间工作,但不适用于邮递员

    我会尽力清楚地解释我的问题 我有一个 API 它使用 Node js 编写的 lambda 函数在 DynamoDB 中编写一些内容 当我在 AWS 控制台中调用它时 API 按预期工作 我发送这样的正文 user id 4dz545zd
  • javascript内置split函数的大O

    Example var string abcde var array string split array a b c d e 这个分割函数的摊销运行时间是多少 另外 如何在javascript中查看此类内置函数的源代码 使用空分隔符参数时
  • 关于c#中|=的问题

    C 中 是什么意思 Example int a 0 int b a 5 我找不到任何这方面的提示 OR 赋值运算符 完整的解释在这里 http msdn microsoft com en us library h5f1zzaw v vs 7
  • 我可以让 MySQL 数据库在插入语句后自动为列分配值吗?

    给定一个具有 ID pk 和 name 列的员工表 ID name 1 John 2 James 3 Tom Can I do INSERT INTO employee name VALUES Jack 并以某种方式让数据库自动分配下一个可
  • 是否可以对 JUnit 中的每个测试用例使用不同的 @Before @After?

    我是新来的Java JUnit并遇到了不同的Fixtures 我在网上搜索了很多 但没有得到答案 是否可以使用不同的 Before After对于不同的测试用例JUnit 例如 我有以下 TC 那么是否可以使用不同的 Before用于测试和
  • IntelliJ 不会从 Maven 依赖项加载 javafx 包 (JavaFX 17)

    我正在尝试获取一个 Maven JavaFX 项目 该项目是从javafx 原型 fxml原型且未经编辑 可在最新版本的 IntelliJ 中运行 需要明确的是 该项目是该原型的直接复制 我只是想让一个例子起作用 可以说我是 Maven 的
  • java.lang.NoClassDefFoundError:解析失败:Lcom/google/gson/Gson;

    当我尝试运行我的应用程序时 出现此错误 java lang NoClassDefFoundError Failed resolution of Lcom google gson Gson this com google gson Gson我
  • Android 和 IOS 是否可以在后台发送短信?

    我想制作一个应用程序 其主要功能取决于发送短信 在我开发 android native 之前 但现在我使用 React Native 来为 IOS 和 Android 制作它 在 Android 中 如果获得用户许可 可以在后台发送短信 但
  • object.style.x 不返回任何内容[重复]

    这个问题在这里已经有答案了 在我网站上的 JavaScript 中 我有这样的内容 console log document getElementById side news style display 我已经尝试过很多样式 但它没有返回任
  • 如何获取优酷access_token

    我在哪里可以找到access token refresh token在我的优酷账号里 我找到了如何使用外部脚本通过 API 将视频上传到 youku com 但我需要access token refresh token使用它 您需要对优酷应
  • 如何对xml进行排序?

    我有一个 XML 文件 如下所示
  • 删除重复的 SQL 记录以允许唯一键

    我在 MYSQL 数据库中有一个表 销售 该表理应强制执行唯一约束以防止重复 事实证明 首先删除欺骗并设置约束有点棘手 表结构 简化 id 唯一 autoinc 产品编号 目标是强制product id 的唯一性 我想要应用的重复数据删除策
  • PHP 数组键字符串不带引号

    我正在将文件移动到服务器 并使用 GET mode 等变量 而 mode 中不带 单引号 它在本地运行良好 但在服务器上我收到通知 我该如何克服这个问题 这是我的 phpinfo 文件phpinfo http solutiq com php
  • r testthat 和 covr 在非包库中使用

    我希望能够使用testthat and covr在一个项目中not一个 r 包 事实上不使用任何第三方服务 只是普通的旧 r 源文件的集合 我正在努力找出这是否可行 如果可以 则已设置有关如何设置的说明 我发现假设你正在编写一个 r 包 我
  • 硬刷新后注册 Service Worker

    每当硬刷新后重新加载具有 Service Worker 的 Web 应用程序时 Ctrl F5例如 对于 Chrome Service Worker 之后无法注册 根据文档W3C https w3c github io ServiceWor