Pan*_*nni 5 javascript iframe caching service-worker
我正在尝试使用我的 ServiceWorker(使用 sw-toolbox.js)缓存 iframe 的请求。
但是,无论我尝试什么,都不会像 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;
Run Code Online (Sandbox Code Playgroud)
self.toolbox.precache() 函数正确地向我的 static_url 发出请求,正如我在网络选项卡中看到的那样。
但是来自 iframe 的所有请求(转到https://quiqqer.local/)似乎都没有通过 ServiceWorker 路由。
我究竟做错了什么?或者不能缓存 iframe 请求?
使用 Linux 在 Chromium 上运行。
提前致谢
可能有一个官方的 HTML 规范提供了更规范的答案,但我只是从MDN 文档中摘录:
HTML 元素代表一个嵌套的浏览上下文,有效地将另一个 HTML 页面嵌入到当前页面中。... 每个浏览上下文都有自己的会话历史记录和活动文档。包含嵌入内容的浏览上下文称为父浏览上下文。
你可以认为这是怎么回事在的<iframe>
,包括加载请求<iframe>
的src
本身,等同于是否会发生什么,<iframe>
是在一个单独的标签加载。除非服务人员控制父浏览上下文(即您的顶级页)也恰好包含<iframe>
的src
在其范围内,即服务人员将不会有任何控制权初始加载<iframe>
或从提出的要求<iframe>
。
归档时间: |
|
查看次数: |
3145 次 |
最近记录: |