我知道您需要为 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/