我有一个网站,其中有一个serviceworker,例如://ImportascriptfromanotherdomainimportScripts('https://example.com/script.js')假设script.js更新了一些新代码,并且由于推送事件激活了serviceworker(用户在此期间没有再次访问我的网站)。importScripts是在每次激活serviceworker时检查更新,还是在首次安装serviceworker时只下载一次script.js?有什么方法可以让服务worker每次收到推送消息时刷新服务worker代码(尤其是导入的脚本)?
我正在尝试使用importScripts从webworker导入json数据,出现以下错误。UncaughtNetworkError:Failedtoexecute'importScripts'on'WorkerGlobalScope':Thescriptat(my:URLtofetchdatafromserver)failedtoload.网络worker代码在这里。我能够从我的网络工作线程和主js线程发送基本消息。我想从我的服务器从网络工作线程获取jsonp数据,然后回复主js线程。/*webworkerjsfiletofetchjsondatafromserverandthenr
实际上有多个问题:importScripts是否始终使用GET请求加载脚本,还是可以缓存脚本?importScripts能否访问缓存在主线程或浏览器上下文中的脚本?worker可以缓存脚本供主线程访问吗?(正好相反) 最佳答案 如果您正确指定诸如“Expires”或“Cache-control”之类的http缓存header,importScripts将不会再次加载脚本,请参阅googlerecomendations关于那个线程之间有一种“网关过滤器”,允许bool值、字符串等原语通过,但不允许对象/函数通过。如果您通过XHR在主线
我曾尝试使用importScripts将第二个JavaScript文件加载到我的WebWorker中,但虽然没有发生错误,但它没有用。我将问题缩小到这种非常简单的情况:在主HTML文件中:varw=newWorker("script1.js");w.addEventListener("message",function(e){alert(e.data);})w.postMessage();在script1.js中:self.addEventListener("message",function(e){vara=5;importScripts("script2.js");self.pos