如何从服务工作者调用缓存的ManifestEntry Javascript函数?
我的构建生成一个预缓存清单,如下所示:如何从服务工作者调用缓存的ManifestEntry Javascript函数?,javascript,node.js,vue.js,service-worker,workbox,Javascript,Node.js,Vue.js,Service Worker,Workbox,我的构建生成一个预缓存清单,如下所示: self.__precacheManifest = [ { "revision": "ea92339a72de73748c35", "url": "/js/vendor.ea92339a.js" }, { "revision": "ce28c628eea246b643c9", "url": "/js/manifest.ce28c628.js" }, { "revision": "f6fb0d345
self.__precacheManifest = [
{
"revision": "ea92339a72de73748c35",
"url": "/js/vendor.ea92339a.js"
},
{
"revision": "ce28c628eea246b643c9",
"url": "/js/manifest.ce28c628.js"
},
{
"revision": "f6fb0d3455c4d454bfc9",
"url": "/js/app.f6fb0d34.js"
},
{
"revision": "dc4521ffd102851e081b02ac893f4981",
"url": "/index.html"
},
{
"revision": "f6fb0d3455c4d454bfc9",
"url": "/css/app.69e433b0.css"
}
];
在我的服务人员中,我在顶部有以下内容:
importScripts(“/precache manifest.14324d3ff39abcb589e6152671cf34d2.js”https://storage.googleapis.com/workbox-cdn/releases/3.0.1/workbox-sw.js");
下面是:
self.\uuu-prechemanifest=[].concat(self.\uu-prechemanifest | |【】)
workbox.precaching.precacheAndRoute(self.\u precacheManifest,{})
这是可行的,但是现在我想从服务人员那里调用/js/vendor.ea92339a.js
中的一个方法,我该如何实现呢
额外信息:
我使用的构建过程是vue cli 3,您不能
服务工作者有自己的作用域,它不同于通常的JS执行作用域(全局/窗口对象/任何东西)。不能从其他js文件调用SW.js中定义的函数,反之亦然
相反,您可以做的是@orangespark在其评论中建议的:
您可以通过postMessage API将消息从SW.js发送到窗口或其他方式。您可以在vendor.js和SW.js中附加事件侦听器,然后发送事件侦听器将以任何方式处理的消息 您可以使用vendor.js文件中的eventlistener来侦听service worker发布的事件,并触发回调函数