不刷新网页动态加载新JS文件的方法总结

作者:竹影时间:2026-10-23 16:04:15浏览:188

本文介绍如何在无需刷新网页的情况下动态加载新的JavaScript文件。通过创建script元素并添加到DOM,可实现代码热更新。对于缓存问题,可通过添加时间戳强制浏览器重新加载,确保获取最新代码逻辑。

动态加载JS文件的基本原理

要在不刷新网页的前提下链接新的JS文件,HTML语言本身已提供相关机制,即通过动态添加一个包含src属性的script标签来实现。

核心方法非常简洁,主要涉及调用document.body.appendChild(script)这一语句,将新创建的脚本元素追加到页面主体中。

具体使用步骤如下所示:


<!DOCTYPE html><html><head><meta charset="utf-8">
<script language="javascript" >
function myFunction(){ <br>var script = document.createElement("script"); <br>script.src = "cs.js";  <br>document.body.appendChild(script); <br>var t=setTimeout("demo()",10);//这是一个延迟执行函数,以便在新JS添加后再执行新JS里的函数。   }
</script>
</head><body>
<input type="button" onclick="myFunction()" value="显示警告框" />
</body></html>

假设存在一个名为cs.js的外部脚本文件。


function demo(){
  alert("你好");
}

实际操作中,可以在网页加载完成后,修改cs.js文件内的提示信息(例如将“你好”改为其他内容),然后点击页面上的“显示警示框”按钮。此时弹出的对话框将显示修改后的内容,而非原始的“你好”,以此验证新脚本已生效。

以下是该技术的扩展实例:

处理浏览器缓存的刷新方案


// 获得要刷新的script
var script = document.getElementById('jQuery');
 
// 刷新JS的方法
function refreshJS(script) {
  var newScript = document.createElement('script');
   
  // 直接加载原地址不会刷新,因为浏览器会缓存, 所以尾部加上时间戳,导致浏览器会认为这是个新地址
  newScript.src = script.src + '?' + new Date().getTime();
  document.body.removeChild(script);
  document.body.appendChild(newScript);
}
 
// 调用
refreshJS(script);

至此,关于不刷新网页即可链接新JS文件的方法总结完毕。如需了解更多相关内容,可搜索本站往期文章或继续浏览后续介绍,感谢大家的支持。

作者最新文章