javascript - Web Worker importScripts DOMException 脚本未能加载
问题描述
我正在尝试使用importScripts
self.addEventListener('fetch', event => {
...
self.importScripts('idb.js');
...
}
为 PWA 的服务人员加载库,但不断获取
DOMException: Failed to execute 'importScripts' on 'WorkerGlobalScope':
The script at 'http://localhost:3000/idb.js' failed to load.
脚本文件在那里,内容类型正确,application/javascript
我也试过text/javascript
了。我的开发人员工具网络选项卡显示请求开始然后很快失败,没有机会访问服务器。状态码是(failed) net::ERR_CONNECTION_REFUSED
通过 http 和(failed) net::ERR_FAILED
https 时。任何帮助表示赞赏
解决方案
根据https://developers.google.com/web/updates/2018/10/tweaks-to-addAll-importScripts
在 Chrome 71 之前,可以在安装处理程序之外异步调用 importScripts()。从 Chrome 71 开始,这些调用会引发运行时异常(除非之前在安装处理程序中导入了相同的 URL),这与其他浏览器中的行为相匹配。
我必须移动importScripts
到我的文件或我的安装处理程序的顶层并且它可以工作
推荐阅读
- phpmyadmin - 基于主机的身份验证中 '%' 的 phpMyAdmin 用户名通配符
- java - 如何使用流 API 过滤连续元素?
- ms-access - Microsoft Access 创建隐藏表单
- node.js - 尽管有字段,但MongoDB查询结果为空
- c# - 如何同时运行许多异步方法?
- javascript - 如何在 obj 中使用 for 循环?
- powerbi-embedded - 有人知道如何从 PowerBi Embeded v2 升级到 v3 吗?还是 v3 的教程?
- python - Python中for语句中的“aa”是做什么的?
- c# - 单击WPF Caliburn.Micro中的按钮时无法在DataGrid中全选
- python - 如何用 pandas 读出我的数据集?