CDN加载失败自动切换为加载本地静态资源
- 首发:2023-04-30 23:50:01
- vscode
- 656
在Web开发中,我们通常使用CDN(内容分发网络)来加速网站的静态资源(如CSS和JavaScript文件)加载。然而,CDN有时可能会失效,导致网站加载速度变慢或者无法正常运行。本文将介绍一种优化方案,当HTML中引入的style或JavaScript静态资源CDN失效时,自动切换为加载本地js/css。我们还将介绍一个名为 "CDN to Local Fallback for HTML Files" 的VSCode插件的开发和测试过程,以帮助您更轻松地实现这个方案。
前端静态资源CDN加载失败的优化方案
要实现这个优化方案,我们需要在HTML文件中添加一个特殊的<script>
标签,当CDN资源加载失败时,该脚本将自动切换到使用本地资源。具体实现方法如下:
- 遍历HTML文件中所有引用外部CSS和JavaScript资源的
<link>
和<script>
标签。 - 下载这些标签所指向的CDN资源,并将其保存到本地目录。
- 在每个
<link>
和<script>
标签中添加一个onerror
属性,该属性指向一个名为loadFallbackResource
的函数。 - 在HTML文件中添加一个
<script>
标签,该标签包含loadFallbackResource
函数的实现,以及一个在页面加载完成后遍历所有带有onerror
属性的元素并调用loadFallbackResource
的事件监听器。
由于我使用的方案并不需要“快捷指令”等APP的配合。也无需任何系统权限。因此存在被滥用可能,请大家不要因为此事联系我,谢谢。
直接问AI吧😂
作者老哥,代码不开源。可以大致说一下实现思路吗😕
谢谢,你写的最详细,也很有效的解决了撕裂问题
很棒的教程,比我之前配置ap的方式更优雅