动态加载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 相关文章推荐
游戏人文件夹程序 ver 3.0
Jul 14 Javascript
jQuery学习笔记之Helloworld
Dec 22 Javascript
原生js实现放大镜效果
Jan 11 Javascript
JavaScript面向对象精要(上部)
Sep 12 Javascript
js实现扫雷小程序的示例代码
Sep 27 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
Aug 31 Javascript
如何根据业务封装自己的功能组件
Apr 19 Javascript
vue中created和mounted的区别浅析
Aug 13 Javascript
谈谈IntersectionObserver懒加载的具体使用
Oct 15 Javascript
js实现踩五彩块游戏
Feb 08 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 Javascript
JavaScript实现轮播图片完整代码
Mar 07 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进程计数类Process用法实例详解
2015/09/25 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
Javascript基础教程之break和continue语句
2015/01/18 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
深入理解Python中字典的键的使用
2015/08/19 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
Python运行DLL文件的方法
2020/01/17 Python
python 弧度与角度互转实例
2020/04/15 Python
Python request中文乱码问题解决方案
2020/09/17 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
乌克兰在线药房:Аптека24
2019/10/30 全球购物
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
面包店的创业计划书范文
2014/01/16 职场文书
现场施工员岗位职责
2014/03/10 职场文书
2015年底工作总结范文
2015/05/15 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书