这几天放假,给博客加了个 ServiceWorker,现在可以离线访问了。

最大一个坑是数据库连接。按照传统服务端的习性,DB 连接是要共享的。所以本来用 IDB 的时候是在 Install 的时候把数据库连接初始化,然后以后每次 Fetch 就直接用已有的连接。本来工作的挺好的,开发环境下也一点问题都没有,直到我第一次重启浏览器,就崩了…

成吧,重启浏览器后不会再跑一次 install,也没有 activate,只能在每次 Fetch 来的时候重开连接。反正是客户端,毫不担心连接数爆炸,嘻嘻。

用 Webpack 也有坑,不知道都有哪些文件,所以不能 Cache,装个插件才能解决。

大概也就这样吧,其实并不是什么难事,我做这个的动机主要是刷 Lighthouse 分数,现在已经有 97 分,我距离满分骨粉只差一个跨越大洋的网络。