Rain9Rain9
首页
AI 岗位
AI 目录
前端
后端
桌面端
WebGL
Web3
  • 算法与面试
  • 面试八股
  • Vim 练级
  • Github
  • 掘金
  • 公众号《与 IT 有约》
首页
AI 岗位
AI 目录
前端
后端
桌面端
WebGL
Web3
  • 算法与面试
  • 面试八股
  • Vim 练级
  • Github
  • 掘金
  • 公众号《与 IT 有约》
  • 前端

    • 前端
    • AI 产品前端开发指南:流式、对话 UI 与 Copilot 交互
    • CDN 容错
    • 面试官问:了解哪些最新的 ES 新特性?——这样回答更好!
    • first_paint
    • Flutter
    • 强制缓存和协商缓存
    • js 高级程序设计
    • JSBridge·
    • 垃圾回收机制
    • 下一代高性能跨平台UI渲染引擎
    • 日志埋点 SDK
    • 日志中心
    • 录音与压缩编码
    • 站内信
    • 小程序
    • PWA1
    • React
    • Tailwind
    • Taro
    • video
    • vite
    • Webassembly
    • Webpack 5
    • 小程序直播
    • 移动端适配

CDN 容错

现象

用户访问不了页面。发现用户 static.xxxx.com 的所有文件都加载失败了

终端 ping static.xxxx.com 正常

前端的静态资源访问以cdn为主,但也带来一系列的问题:

  1. cdn本身的稳定性问题
  2. 用户所在运营商网络问题
  3. 用户dns缓存
  4. 其他未知问题

这些都可能导致用户加载资源失败,从我们的实时日志来看,每天都有几十、上百例资源加载失败的。

解决方案

可以先尝试清理用户的dns缓存,或者修改用户路由器的dns解析服务器

  • https://test-ipv6.com/index.html.zh_CN 检测用户网络环境是否支持 ipv6
  • 尝试清除一下用户本地 dns 缓存,https://jingyan.baidu.com/article/546ae1851b79d51149f28c8d.html

前端容错

<script type="text/javascript">
var cdnlist = ['cdn.bootcss2.com', 'cdn.bootcss.com']
function handleCDNError(dom, index) {
    var index = index || 0;
    var newsrc = dom.getAttribute('src').replace(/:\/\/[\w|.]+\//, '://'+ cdnlist[index] +'/')
    if (index < cdnlist.length - 1) {
        document.write('<script src="'+ newsrc +'" onerror="handleCDNError(this, ' + (index + 1)+')"><\/script>')
    }
    else {
        document.write('<script src="'+ newsrc +'"><\/script>')
    }
}
</script>
<script type="text/javascript" src="https://cdn.bootcss1.com/jquery/3.3.1/jquery.min.js" onerror="handleCDNError(this)"></script>

https://blog.csdn.net/newchenxf/article/details/51693753

最近更新: 2026/10/31 09:42
上一篇
AI 产品前端开发指南:流式、对话 UI 与 Copilot 交互
下一篇
面试官问:了解哪些最新的 ES 新特性?——这样回答更好!