前几天 jsdelivr 出故障,很多网站都受影响。其实早已料到,毕竟 jsdelivr 可加速任意内容,显然不符合国情,被和谐估计是早晚的事。只是目前有太多网站在使用,直接下线影响太大,所以先出个故障,也许算是提醒这些网站可以开始考虑更换吧。以后“故障率”可能还会越来越高。
另一个选择是 unpkg.com 。虽然它同样也有类似问题,但多一个节点还是可以提高不少稳定性。毕竟两个同时故障的概率就低很多。
当然,如果只是用流行的公共库,不如 cdnjs 、bootcss 等等。毕竟 jsdelivr / unpkg 可加速自定义资源,显然更珍贵一些,加速公共库显得有点大材小用了。
但同时使用多个 CDN 实现很麻烦。例如需要通过 JS 监控脚本、图片、CSS 等加载失败或超时,然后加载后备资源替换之前的元素。而且还会出现一些副作用。因此很少有人这么做。
为方便使用,之前尝试做了一个方案,通过 Service Worker 将清单文件中指定的资源映射到多个 CDN URL ,一个加载异常自动尝试另一个。由于是在 Service Worker 实现,上层页面是无感知的。
演示:github.com/EtherDream/freecdn
当然由于时间有限,很多功能仍在开发中,不过基本功能已实现,有兴趣的可以试试~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.