使用 ServiceWorker 缓存 iframe 请求

2023-11-22

我正在尝试使用 ServiceWorker 缓存 iframe 的请求(使用 sw-toolbox.js)。

但无论我如何尝试,正如 Chrome Network Tab 告诉我的那样,ServiceWorker 永远不会提供文件。

这是我的 service-worker.js:

'use strict';
importScripts('./build/sw-toolbox.js');

self.toolbox.options.cache = {
    name: 'ionic-cache'
};

var static_urls = [
    'https://quiqqer.local/test?app=1',
    'https://quiqqer.local/calendar?app=1'
];

self.toolbox.precache(static_urls);

self.toolbox.router.any('/(.*)', self.toolbox.cacheFirst, {origin: 'https://quiqqer.local'});

self.addEventListener('install', function (event)
{
    self.skipWaiting();
});

self.toolbox.router.default = self.toolbox.cacheFirst;

self.toolbox.precache() 函数正确地向我的 static_url 发出请求,正如我在“网络”选项卡中看到的那样。

但是所有的请求都来自 iframe(https://quiqer.local/)似乎没有通过 ServiceWorker 路由。

我究竟做错了什么?或者是否可以缓存 iframe 请求?

使用 Linux 在 Chromium 上运行。

提前致谢


可能有一个官方 HTML 规范提供了更规范的答案,但我只是从MDN 文档:

HTML 元素代表一个嵌套的浏览上下文, 有效地将另一个 HTML 页面嵌入到当前页面中。 ... 每个浏览上下文都有自己的会话历史记录和活动文档。 包含嵌入内容的浏览上下文称为 父浏览上下文。

你可以想想发生了什么<iframe>,包括加载请求<iframe>'s src本身,相当于如果那样会发生什么<iframe>已加载到单独的选项卡中。除非控制父浏览上下文(即您的顶级页面)的服务工作线程也恰好包含<iframe>'s src在其范围内,该服务工作人员将无法控制最初加载<iframe>或提出的要求<iframe>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ServiceWorker 缓存 iframe 请求 的相关文章

随机推荐

  • 浮点型与双精度型

    是否存在比较 equals 两个浮点值之间将返回false如果你将它们比较DOUBLE但返回true如果你将它们与 FLOAT 进行比较 作为我的小组项目的一部分 我正在编写一些程序来比较任何给定类型的两个数值 我总共需要处理四种类型 do
  • Java 中的 double 到 long 无需转换

    我需要将 double 转换为 long 保留其二进制结构 而不是数值 只需更改类型 但保留二进制值不变 有没有一种本地方法可以做到这一点 有Double与 doubleToLongBits 和 doubleToLongRawBits Ja
  • 如何在 Hibernate 中使用唯一键而不是主键检索记录

    Using session load or session get 或任何其他方法org hibernate session 是否可以在hibernate中根据Unique列而不是PK列值获取记录 我的要求是我需要根据唯一列值而不是主键获取
  • 将 Arc 克隆为 Arc,其中 T 实现 U

    我觉得很奇怪 use std sync Arc trait Fruit struct Pear impl Fruit for Pear fn main let pear Arc new Pear let cloned Arc clone p
  • 在 Neo4j 中实现 Dijkstra 算法

    我对 Neo4j 很陌生 有人可以向我解释 请逐步 如何实现 Dijkstra 算法来找到两个节点之间的最短路径 是否可以简单地使用 Cypher 来完成它 我已经尝试过最短路径算法 但它很慢 MATCH from Location Loc
  • 为什么我不能反转 str::split 的结果?

    根据文档Split 有一个rev方法对结果的影响split在字符串上 fn main let mut length 0 let mut mult 1 for part in 1 30 split rev length mult part p
  • Eclipse p2:category.xml 和 site.xml 之间的区别

    p2 存储库创建 ant 任务 例如 eclipse publish featuresAndBundles 似乎采用指定类别信息的 site xml 或category xml 文件 我发现 eclipse 生成的 site xml 和ca
  • 圆形ViewPager。第一轮后碎片无法正常工作

    好的 所以我需要圆形 ViewPager 我真的很难实施它 现在我已经实现了它 并且就圆形滚动而言它运行良好 但我注意到一个问题 那就是 第一轮滚动片段不起作用后 我有三个片段 里面有一个按钮 按钮在第一轮有效 但当我回到第一页时按钮不起作
  • 有没有办法在 Eclipse 中自动生成 getter 和 setter?

    我正在研究一个新的Android项目 Java 并创建了一个带有大量变量的对象 由于我计划为所有这些添加 getter 和 setter 所以我想知道 是否有捷径Eclipse自动生成给定类中的 getter 和 setter 在所需类的源
  • 使用 JSONB 列内的值连接表

    有两个表 授权联系人 auth contacts userid varchar contacts jsonb contacts包含具有属性的联系人数组 contact id type discussion contact id varcha
  • 在 cmake 构建中使用 LLVM

    我正在尝试构建自己的使用 LLVM 的项目 我在官网上下载了源码和预编译包 最新版本 http releases llvm org download html 我下载了 LLVM source code Clang for Windows
  • 角度材料将 angularjs 1.5 组件加载到 $mdDialog 中

    目标 使用组件而不是使用 scope 来设置数据 没有可共享的错误 问题是对话框加载组件时未设置数据元素 屏幕截图显示了对话框的当前状态 选项卡 2 信息 中应该有一个绑定的对象 我可以使用 onComplete 事件验证对话框加载后对象
  • 如何通过两个键对 JSON 对象进行排序?

    我有一个 JSON 对象 我想先按一个键排序 然后按第二个键排序 类似于 SQL 中按两列排序 以下是我想要的 JSON 示例 GROUPID 3169675 LASTNAME Chantry 我想按 GROUPID 然后按 LASTNAM
  • 每个连接请求都被视为直接连接请求+ android ble

    我们正在编写一个 ble 应用程序 希望与我们想要连接的外设建立持久连接 出于同样的目的 每当我们失去现有连接时 我们都希望与外围设备重新连接 因此 我们作为中心的 Android 应用程序只是尝试通过调用 bluetoothdevice
  • Tensorflow 因 CUDNN_STATUS_ALLOC_FAILED 崩溃

    在网上搜索了几个小时没有结果 所以我想在这里问一下 我正在尝试按照 Sentdex 的教程制作一辆自动驾驶汽车 但是在运行模型时 我遇到了一堆致命错误 我在网上搜索了解决方案 很多人似乎都有同样的问题 但是 我没有找到任何解决方案 包括这个
  • KMM 与公共(共享)模块中的 Java 源

    由于平台限制 我们无法将 Java 源代码与 Kotlin Multiplatform Mobile 一起使用 但如果 Kotlin 与 Java 100 兼容 为什么我们不能将 Java 与 Kotlin Multiplatform Mo
  • OpenSSL 连接:警报内部错误

    我使用 SNI 在单个服务器上运行 100 个 HTTPS 服务 实际上 我无权访问它们 这是一项任务 我只知道他们的域名N xxx yy其中 N 的范围是 00 到 99 分配的目标是评估与每个服务器的每个连接的安全性 因此 某些服务器包
  • Bash 需要测试字母数字字符串

    尝试验证字符串中是否仅包含小写 大写或数字 if TITLE a zA Z0 9 then echo INVALID fi 想法 更新 变量 TITLE 目前只有大写文本 因此它应该通过并且不应该输出任何内容 但是 如果我向 TITLE 添
  • “find -exec”或“find |”哪个更快xargs -0'?

    在我的 Web 应用程序中 我使用 PHP 脚本渲染页面 然后从中生成静态 HTML 文件 静态 HTML 提供给用户以提高性能 HTML 文件最终会变得陈旧 需要删除 我正在讨论两种编写驱逐脚本的方法 第一个是使用单个 find 命令 例
  • 使用 ServiceWorker 缓存 iframe 请求

    我正在尝试使用 ServiceWorker 缓存 iframe 的请求 使用 sw toolbox js 但无论我如何尝试 正如 Chrome Network Tab 告诉我的那样 ServiceWorker 永远不会提供文件 这是我的 s