前几天 jsdelivr 出故障,很多网站都受影响。其实早已料到,毕竟 jsdelivr 可加速任意内容,显然不符合国情,被和谐估计是早晚的事。只是目前有太多网站在使用,直接下线影响太大,所以先出个故障,也许算是提醒这些网站可以开始考虑更换吧。以后“故障率”可能还会越来越高。
另一个选择是 unpkg.com 。虽然它同样也有类似问题,但多一个节点还是可以提高不少稳定性。毕竟两个同时故障的概率就低很多。
当然,如果只是用流行的公共库,不如 cdnjs 、bootcss 等等。毕竟 jsdelivr / unpkg 可加速自定义资源,显然更珍贵一些,加速公共库显得有点大材小用了。
但同时使用多个 CDN 实现很麻烦。例如需要通过 JS 监控脚本、图片、CSS 等加载失败或超时,然后加载后备资源替换之前的元素。而且还会出现一些副作用。因此很少有人这么做。
为方便使用,之前尝试做了一个方案,通过 Service Worker 将清单文件中指定的资源映射到多个 CDN URL ,一个加载异常自动尝试另一个。由于是在 Service Worker 实现,上层页面是无感知的。
演示:github.com/EtherDream/freecdn
当然由于时间有限,很多功能仍在开发中,不过基本功能已实现,有兴趣的可以试试~
1
balabalaguguji 2021-12-23 14:01:24 +08:00
不错的东西
|
2
wszgrcy 2021-12-23 14:32:50 +08:00
支持楼主,最好出一个免费白嫖各种图床,图床失效自动换其他图床的
还有分布式的白嫖网盘,网盘失效同样可以换其他的 是不是要求有点多了[滑稽] |
3
az22c 2021-12-23 14:39:51 +08:00
早就应该有这种东西了 牛逼
|
4
mywaiting 2021-12-23 14:51:43 +08:00
仔细看看博主 ID ,爱了爱了~
博主对前端黑魔法的研究,也真是煞费苦心了,这把 Service Worker 都要玩出花来了~ |
5
jh163888 2021-12-23 15:46:16 +08:00 via Android
这个真的好,非常感谢楼主分享!辛苦了! JS 环境真是日渐困难了
|
6
dyxang 2021-12-24 09:01:47 +08:00
等等,我是看 jsdelivr 有中国执照有网宿的内地节点才用的。莫非以后用不了了?
|
8
ClarkAbe 2021-12-24 10:51:18 +08:00
你前几年的那个纯 CDN 那个更猛........一行 js == 一个网页
|
9
ClarkAbe 2021-12-24 10:53:02 +08:00
才发现大佬的博客也复更了......
|
10
ClassicOldSong 2021-12-25 01:44:35 +08:00
敢情挺好,我也正好在搞一个基于 ServiceWorker 的 Bundleless 项目,暂时还没开源,有兴趣的可以来戳我体验
如果这两个能够结合起来的话应该能是一个很不错的搭配 目前有个不太像样的还没做完的官网: https://unpak.dev |
11
W4J1e 2021-12-25 22:26:25 +08:00
但愿那些用 jsd 作图床的换个方案吧,也别再折磨 npm unpkg 啥的了
|
13
since2021 2021-12-28 21:46:57 +08:00
哎
|
14
jackrebel 2021-12-31 11:17:21 +08:00
很赞
|