动态加载JavaScript文件的3种方式


Posted in Javascript onMay 05, 2018

以下是遇到的几种动态加载JavaScript文件的方式,持续更新中。。。

一、使用document.write/writeln()方式

该种方式可以实现js文件的动态加载,原理就是在重写文档流,这种方式会导致整个页面重绘。

实现方式:

document.writeln("<script src=\"http://lib.sinaapp.com/js/jquery/1.6/jquery.min.js\"></script>");

需要注意的是特殊字符的转义。

二、使用jQuery

使用getScript(url,callback)方法实现动态加载js文件

$.getScript('test.js',function(){
 alert('done');
});

三、使用原生js方法

原理:动态创建script标签,并指定script的src属性

function loadJs(url,callback){
 var script=document.createElement('script');
 script.type="text/javascript";
 if(typeof(callback)!="undefined"){
 if(script.readyState){
 script.onreadystatechange=function(){
  if(script.readyState == "loaded" || script.readyState == "complete"){
  script.onreadystatechange=null;
  callback();
  }
 }
 }else{
 script.onload=function(){
  callback();
 }
 }
 }
 script.src=url;
 document.body.appendChild(script);
 }
 loadJs("test.js",function(){
 alert('done');
 });

还可以使用同样的原理动态加载css文件,只不过插入的的父节点是head标签。

以上就是动态加载JavaScript文件的方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
Sep 15 Javascript
javascript中的array数组使用技巧
Jan 31 Javascript
JavaScript入门之事件、cookie、定时等
Oct 21 Javascript
js 利用image对象实现图片的预加载提高访问速度
Mar 29 Javascript
JavaScript 32位整型无符号操作示例
Dec 08 Javascript
浅析jQuery1.8的几个小变化
Dec 10 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 Javascript
jquery中关于bind()方法的使用技巧分享
Mar 30 jQuery
Web技术实现移动监测的介绍
Sep 18 Javascript
浅谈mint-ui loadmore组件注意的问题
Nov 08 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
vue实现循环切换动画
Oct 17 Javascript
Node.js的Koa实现JWT用户认证方法
May 05 #Javascript
浅谈vue项目可以从哪些方面进行优化
May 05 #Javascript
Angular模版驱动表单的使用总结
May 05 #Javascript
浅谈Angular HttpClient简单入门
May 04 #Javascript
Vue项目全局配置微信分享思路详解
May 04 #Javascript
vue嵌套路由与404重定向实现方法分析
May 04 #Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
May 04 #Javascript
You might like
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
php身份证号码检查类实例
2015/06/18 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
jquery JSON的解析方式
2009/07/25 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
理解JS事件循环
2016/01/07 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
Python fileinput模块使用介绍
2014/11/30 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
业务员简历自我评价
2014/03/06 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
五一促销活动总结
2014/07/01 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
优秀员工推荐材料
2014/12/20 职场文书
初二英语教学反思
2016/02/15 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers