动态加载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 相关文章推荐
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 Javascript
javascript实现树形菜单的方法
Jul 17 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
AngularJS控制器之间的数据共享及通信详解
Aug 01 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
Apr 13 Javascript
JavaScript取得gridview中获取checkbox选中的值
Jul 24 Javascript
基于JavaScript实现百度搜索框效果
Jun 28 Javascript
Vue+webpack项目基础配置教程
Feb 12 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
Mar 21 Javascript
详解Vue源码中一些util函数
Apr 24 Javascript
微信小程序自定义单项选择器样式
Jul 25 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 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
PHP输入输出流学习笔记
2015/05/12 PHP
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
基于JS判断对象是否是数组
2020/01/10 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
Python实现的多线程端口扫描工具分享
2015/01/21 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
python中import与from方法总结(推荐)
2019/03/21 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
Spy++的使用方法及下载教程
2021/01/29 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
canvas绘制树形结构可视图形的实现
2020/04/03 HTML / CSS
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
运动会100米解说词
2014/01/23 职场文书
干部考核评语
2014/04/29 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
服务整改报告
2014/11/06 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
污染环境建议书
2015/09/14 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书