javascript - 如果资源在不同的域上,如何使用 service-worker?

标签 javascript service-worker

我们知道 service worker 是从项目文件夹的根目录注册的,但是有没有办法从不同的域中获取一些静态资源(css、js)?

示例:

  • myWebsite.com//主要网址(例如 index.html)
  • abc.com/css/style.css//css文件路径
  • xyz.com/js/jsFile.js//javascript文件路径

最佳答案

来自页面的任何请求(除了 iframe 子资源)都将通过 service worker。这些资源可以来自相同或不同的来源。您可以缓存这些资源,以便它们可以脱机使用,但是作为开发人员,您无法操作或检查它们的内容,除非资源具有正确的 CORS header 集。

例如,在您的安装事件中,您可以缓存不在您域中的远程文件。

self.addEventListener('install', function(e) {
  e.waitUntil(
    caches.open('airhorner').then(function(cache) {
      return cache.addAll([
        'https://paul.kinlan.me/'
      ]);
    })
  );
});

关于javascript - 如果资源在不同的域上,如何使用 service-worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33890124/

相关文章:

javascript - Service Worker 和 AJAX

java - 从 rhino javascript 调用静态 Java 方法

javascript - 如何避免node.js的异步行为?

service-worker - 如何在没有单独 JS 文件的情况下使用 ServiceWorker?

ServiceWorker 中的 RequireJS

javascript - 服务 worker 的推送事件未被调用

javascript - jQuery 选择/缩放/复制/粘贴/裁剪图片插件

javascript - 执行javascript函数,变量中存储哪个名称?

javascript - jquery代码有时工作有时没有

google-chrome - 如何防止 Service Worker 安装在浏览器(chrome)中?