javascript - 如何使用内联服务 worker

标签 javascript

我知道您需要为 service worker 创建一个单独的文件并注册它。如何在同一个文件中编写 Service Worker 的代码并使用它?

我知道我可以在 web workers 中使用 Blob 。 service Worker 也是一样吗?

最佳答案

根据 MDN you must specify the URL path .我可以想象如何内联的唯一方法是使用 data URIs ,但是当您在 Chrome 中尝试以下操作时:

navigator.serviceWorker.register("data:application/javascript,alert('123');");

它响应

Uncaught (in promise) DOMException: Failed to register a ServiceWorker: The origin of the provided scriptURL ('null') does not match the current origin ('my origin URL').

所以我宁愿说没办法那样做。

关于 Blob 检查 following和你说的一样

Blob is available in Worker scopes.

它没有命名 worker 类型。如果您检查 official w3c draft他们在那里对 blob 只字未提。

了解它的唯一方法 - 亲自在 Chrome 中试用。但是,即使它现在可以在 Chrome 中为您工作,也不意味着它以后也可以工作。它仍然是一项实验技术。

关于javascript - 如何使用内联服务 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31515426/

相关文章:

javascript - 如何从表单中获取文件内容?

javascript - 如何在点击时使用 jQuery 添加标题子菜单?

javascript - 在我的 Angular 2 项目中使用外部 JS 库

javascript - 使用 Javascript 确定 JSF 库资源

javascript - 如何用css和javascript实现打印预览功能。?

javascript - "Error: MongooseError: Operation ` users.insertOne() ` buffering timed out after 10000ms",

javascript - HTML 5 标志出来了它到底意味着什么?

javascript - 困惑为什么我的正则表达式不起作用?

javascript - AngularJS 中的继承和嵌套 View

javascript - 在调用依赖它的方法时设置 javascript 对象属性