动态加载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 相关文章推荐
JavaScript 原型继承之构造函数继承
Aug 26 Javascript
Jquery插件之打造自定义的select标签
Nov 30 Javascript
深入分析js中的constructor和prototype
Apr 07 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
Aug 29 Javascript
javascript数组去重3种方法的性能测试与比较
Mar 26 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
Javascript 运动中Offset的bug解决方案
Dec 24 Javascript
实例讲解jquery与json的结合
Jan 07 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
Jan 28 Javascript
jQuery插件DataTables分页开发心得体会
Aug 22 jQuery
原生JS实现自定义下拉单选选择框功能
Oct 12 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
Jul 10 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 表单数据的获取代码
2009/03/10 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Djang中静态文件配置方法
2015/07/30 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
css3 实现滚动条美化效果的实例代码
2021/01/06 HTML / CSS
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
PHP中如何创建和修改数组
2012/05/02 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
小学安全教育材料
2014/02/17 职场文书
《太阳》教学反思
2014/02/21 职场文书
节约用水演讲稿
2014/05/21 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
认真学习保证书
2015/02/26 职场文书
比赛主持人开场白
2015/05/29 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL