谷歌家 googleapis.com 抽的厉害,怎样才能在国内正常的调用 workbox 的功能呢?

2019-03-27 17:44:12 +08:00
 lisisi

外网访问很正常,国内不稳定时有时无,导致 service worker 依赖的 workbox 常常失效。怎样才能在国内正常使用 workbox 功能呢?( workbox-sw.js 的文件中还有依赖其他谷歌 api,单独下载 workbox-sw.js 到本地还是不行。)

service-worker.js

console.log('Hello from service-worker.js');

importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.2.0/workbox-sw.js');

if (workbox) {
  console.log("Yes! Workbox is loaded");

  workbox.precaching.precacheAndRoute([
    {
      "url": "/",
      "revision": "1"
    }
  ]);

  workbox.routing.registerRoute(
    /\.(?:js|css)$/,
    workbox.strategies.staleWhileRevalidate({
      cacheName: 'static-files',
    }),
  );

  workbox.routing.registerRoute(
    /\.(?:png|gif|jpg|jpeg|svg)$/,
    workbox.strategies.cacheFirst({
      cacheName: 'cache-images',
      plugins: [
        new workbox.expiration.Plugin({
          maxEntries: 60,
          maxAgeSeconds: 30 * 24 * 60 * 60, // 30 Days
        }),
      ],
    }),
  );

  workbox.routing.registerRoute(
    new RegExp('https://fonts.(?:googleapis|gstatic).com/(.*)'),
    workbox.strategies.cacheFirst({
      cacheName: 'googleapis',
      plugins: [
        new workbox.expiration.Plugin({
          maxEntries: 30,
        }),
      ],
    }),
  );
} else {
  console.log("No! Workbox didn't load");
}

3966 次点击
所在节点    JavaScript
3 条回复
outerws
2019-03-27 17:56:31 +08:00
跳一次?
johnnyNg
2019-03-27 19:13:48 +08:00
这个文章的最后提到了阿里 cdn,你可以替换一下
http://taobaofed.org/blog/2018/08/08/workbox3/
magicdawn
2019-03-27 23:03:27 +08:00
https://github.com/magicdawn/magicdawn/blob/master/md/fe/service-worker/workbox/0.md#from-unpkgjsdelivrbaidu-等-npm-cdn

自己研究的,从 jsdelivr npm cdn 加载,不喜欢 jsdelivr 可以改成 unpkg.com

version 可以具体一点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/549234

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX