前端引入的JS加载失败页面功能无法使用?JS加载失败的终极解决方案

前端引入的JS加载失败页面功能无法使用?JS加载失败的终极解决方案
在这里插入图片描述
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》专栏19年编写主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
🌛《开源项目》本专栏主要介绍目前热门的开源项目,带大家快速了解并轻松上手使用
🍎 《前端技术》专栏以实战为主介绍日常开发中前端应用的一些功能以及技巧,均附有完整的代码示例
✨《开发技巧》本专栏包含了各种系统的设计原理以及注意事项,并分享一些日常开发的功能小技巧
💕《Jenkins实战》专栏主要介绍Jenkins+Docker的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程
🌞《Spring Boot》专栏主要介绍我们日常工作项目中经常应用到的功能以及技巧,代码样例完整
👍《Spring Security》专栏中我们将逐步深入Spring Security的各个技术细节,带你从入门到精通,全面掌握这一安全技术
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~

前端引入的JS加载失败页面功能无法使用,客户投诉后看我三步处理完成

1. 事故起因

今天在公司被客户反馈系统功能无法使用,通过排查发现发现是项目中的某一个JS一直加载失败导致,该公共JS工具类放在某一个CDN节点上(多项目共享引入),由于CDN节点故障,导致加载失败,从而影响页面功能!

在这里插入图片描述


JS文件加载失败是前端开发常见问题之一,既然问题找到了那么就很好解决了,这里分享一下博主的解决思路,教你轻松解决这个问题!

2. 为什么会出现 JS 加载失败?

有小伙伴要问了了?为什么会出现 JS 加载失败?
由于网络请求具有不确定性,特别是在移动端和弱网环境下,JS文件加载可能因以下原因失败:

  • 网络问题:用户的网络环境不稳定
  • CDN 故障CDN节点挂了,资源就直接 404
  • 缓存污染:某些浏览器或代理缓存了错误的文件

以上这些问题不可完全避免,但我们能在代码层面进一步完善尽量给用户进行兜底。

3. 解决思路

既然是加载失败,那么是否可以提供一种重试机制,当前端加载JS失败了进行重试,另外由于单节点的问题,我们还可以多源备份,避免单节点故障导致的问题!

在这里插入图片描述
  • 自动重试:加载失败后,尝试再次发起请求
  • 多源加载:比如主域名失败后,切换备用的 CDN 地址

4. 基础监听与重试方案

核心逻辑是:用 script 标签去加载资源,监听 onerror 事件,失败后重试,以下是加载重试的代码,小伙伴们可以根据自身的需求进行调整改动:

functionloadScript(url, options ={}){const{ maxRetry =3, timeout =5000}= options;let attempt =0;returnnewPromise((resolve, reject)=>{constload=()=>{ attempt++;const script = document.createElement("script"); script.src = url +(url.includes("?")?"&":"?")+"retry="+ attempt; script.async =true;let timer =setTimeout(()=>{ script.remove();if(attempt < maxRetry){ console.warn(`加载超时,正在重试 ${attempt}/${maxRetry} ...`);load();}else{reject(newError(`加载超时:${url}`));}}, timeout); script.onload=()=>{clearTimeout(timer);resolve();}; script.onerror=()=>{clearTimeout(timer); script.remove();if(attempt < maxRetry){ console.warn(`加载失败,正在重试 ${attempt}/${maxRetry} ...`);load();}else{reject(newError(`加载失败:${url}`));}}; document.head.appendChild(script);};load();});}

使用方式

loadScript("https://cdn.yourname.com/app.js",{ maxRetry:3, timeout:3000}).then(()=>{ console.log("脚本加载成功");}).catch((err)=>{ console.error("脚本加载最终失败:", err);// 加载重试依旧失败可以提示用户,比如提示用户刷新// alert('资源加载失败,请重新刷新页面')});

5. 多源备份加载

上面我们提到了,由于我们是单节点一旦节点故障就会出现加载失败的问题,既然如此我们还可以准备多个地址:

const cdnList =["https://cdn1.yourname.com/app.js","https://cdn2.yourname.com/app.js","https://cdn3.yourname.com/app.js"];(async()=>{for(const url of cdnList){try{awaitloadScript(url); console.log("成功加载:", url);break;}catch(e){ console.warn("失败,尝试下一个源:", url);}}})();

这样,即使某个 CDN 节点彻底挂了,也能通过备用源恢复

6. 总结

通过本文的介绍,相信小伙伴已经掌握了JS加载失败的重试方案,总结一下无非就是解决以下几个问题:

加载失败的重试:失败重试,次数通常2 - 3次足够,过多重试会影响用户体验
CDN容灾:准备多个CDN地址,主地址失败时自动切换
提供降级方案:关键资源重试加载依然失败时显示友好提示(比如演示代码中弹出警告框告知刷新)

通过JS加载重试机制可以提升我们应用的可靠性,即便因为各种原因出现加载失败的问题,都尽可能给用户进行兜底。如果你也和博主一样有类似的问题,不如花一点时间实现重试逻辑,让你的应用更加健壮可靠!

如果你在实践过程中有任何疑问或更好的扩展思路,欢迎在评论区留言,最后希望大家一键三连给博主一点点鼓励!


Read more

夸克网盘免费资源电子书籍安卓软件经典游戏音乐歌曲精品教程AI绘画学习资料合集

夸克网盘免费资源电子书籍安卓软件经典游戏音乐歌曲精品教程AI绘画学习资料合集

一、夸克网盘免费资源说明 夸克网盘免费资源,来自全网整理二次精选,涵盖了几乎所有资源类型,网盘资源目录的分享链接,仅限一级目录和二级目录,一级目录是网盘资源的根目录,包括电子书籍、软件资源、游戏资源、视频资源、音乐音频、美食技术和学习资料等,二级目录是一级目录的子目录,均为资源专题形式,比如,Kindle原版书籍合集、U盘车载音乐歌曲、DeepSeek全套资源、全网专业摄影书籍、TikTok全球解锁版本、IOS巨魔专用资源、TED演讲视频合集、剪映教学全套资源、全网热门漫画精选,等等,相信其中会有你所需要的。 特别说明: 1、夸克网盘与百度网盘不同,不仅支持查看分享链接的资源大小,而且支持在分享链接页面里搜索资源,可以查询其中是否有你所需要的。 2、夸克官方一直都有福利活动,新用户可以免费领取1TB空间,具体操作方法请查看文本文件(在分享链接里)。 3、一级目录《全网精选2000T优质资料》,提供了很有价值的海量夸克资源,分享链接存放在电子表格里,整个目录大小只有9.7M,建议转存收藏。 二、夸克网盘一级目录资源 电子书籍+

GLM-4.7-Flash实战教程:基于GLM-4.7-Flash构建本地Copilot工具

GLM-4.7-Flash实战教程:基于GLM-4.7-Flash构建本地Copilot工具 1. 为什么需要本地Copilot工具 在日常编程和工作中,我们经常需要代码建议、文档生成、问题解答等AI辅助功能。虽然云端AI服务很方便,但存在网络延迟、隐私安全、使用成本等问题。基于GLM-4.7-Flash构建本地Copilot工具,可以让你: * 完全离线运行:不依赖网络,响应速度极快 * 数据隐私安全:所有对话和代码都在本地处理 * 定制化能力强:可以根据自己的需求调整模型行为 * 成本可控:一次部署,长期使用,无按次付费 GLM-4.7-Flash作为最新的开源大模型,在代码理解和生成方面表现出色,特别适合作为本地编程助手。 2. 环境准备与快速部署 2.1 硬件要求 为了流畅运行GLM-4.7-Flash,建议准备以下硬件环境: * GPU:4张RTX 4090 D显卡(或同等算力) * 内存:至少128GB系统内存 * 存储:至少100GB可用空间(模型文件约59GB)

2026权威评测:毕业论文AIGC降重盘点,附免费试用

2026权威评测:毕业论文AIGC降重盘点,附免费试用

ZEEKLOG摘要: 2026年高校全面启用AIGC检测,传统同义词替换的降重方式已彻底失效!毕业论文“AIGC痕迹”究竟怎么破?本文基于真实学术场景,深度盘点5款主流AI学术工具,从原创性、降痕能力、服务保障等维度的实测数据出发,为你提供一份最靠谱的选型避坑指南。 一、 引言:“查重”退潮,“查痕”当道,你的论文还安全吗? 作为在ZEEKLOG深耕“AI效率工具”与“学术科研”板块多年的老博主,最近收到了大量本硕博同学的私信求助。来到2026年,学术圈的游戏规则已经发生巨变。 据最新发布的虚拟数据《2026中国高校学术诚信白皮书》显示:今年因“AIGC生成痕迹过高”被退回重写的毕业论文比例高达37.2%。知网、万方、格子达等主流平台已经完成了第三代AI检测大模型的迭代。 这就导致了一个绝对的核心痛点:过去市面上的传统降重工具,只是在玩“同义词替换”的文字游戏,不仅语法生硬,且在最新的查测系统中AIGC疑似度往往直接飙升至60%以上。学生们花了钱降重,反而因为“AI味太重”面临学术不端的指控,返工率极高。

【AIGC前沿】MiniMax海螺AI视频——图片/文本生成高质量视频

【AIGC前沿】MiniMax海螺AI视频——图片/文本生成高质量视频

目录 1.MiniMax海螺AI视频简介 2.使用教程 1.MiniMax海螺AI视频简介 海螺视频,作为 MiniMax 旗下海螺 AI 平台精心打造的 AI 视频生成工具,致力于助力用户产出高品质视频内容。该工具依托 abab-video-1 模型,具备强大的文生视频功能。用户仅需输入关键词或简短语句,海螺视频就能据此创作出情节丰富的完整视频。此外,海螺视频运用 DiT 架构,能够精准模拟现实世界的物理规律,尤其在生成复杂场景与高动作场景时,展现出卓越的性能。 2.使用教程 点击如下链接,进入蓝耘元生代智算云平台主页 https://cloud.lanyun.net/#/registerPage?promoterCode=11f606c51e 点击主页上方栏的“MaaS平台” 然后点击左侧栏的“视觉模型”  可以看到可以免费体验一次I2V-01图片生成视频  点击如下红框处将图片上传  例如输入如下的图片 例如想让小狗动起来,可以在如下红框处输入相应的指令,然后点击立即生成