javascript loadScript异步加载脚本示例讲解


Posted in Javascript onNovember 14, 2013

一、语法:
loadScript(url[,callback])
或者
loadScript(settings)
二、settings支持的参数:
url:脚本路径
async:是否异步,默认false(HTML5)
charset:文件编码
cache:是否缓存,默认为true
success:加载成功后执行的函数,优先执行callback。
三、调用举例:

//loadScript(url[,callback])
loadScript(“http://code.jquery.com/jquery.js”);
loadScript(“http://code.jquery.com/jquery.js”,function(){
console.log(1)
});
//loadScript(settings)
loadScript({“url”:”http://code.jquery.com/jquery.js”,”async”:false,”charset”:”utf-8″,”cache”:false});
loadScript({“url”:”http://code.jquery.com/jquery.js”,”async”:false,”charset”:”utf-8″,”success”:function(){
console.log(2)
}});
//或者你可以酱紫:
//loadScript(settings[,callback])
loadScript({“url”:”http://code.jquery.com/jquery.js”,”async”:false,”charset”:”utf-8″},function(){
console.log($)
});

四、源代码:
function loadScript(url,callback) {
var head = document.head || document.getElementsByTagName(“head”)[0] || document.documentElement,
script,
options,if (typeof url === “object”) {
options = url;
url = undefined;
}
s = options || {};
url = url || s.url;
callback = callback || s.success;
script = document.createElement(“script”);
script.async = s.async || false;
script.type = “text/javascript”;
if (s.charset) {
script.charset = s.charset;
}
if(s.cache === false){
url = url+( /\?/.test( url ) ? “&” : “?” )+ “_=” +(new Date()).getTime();
}
script.src = url;
head.insertBefore(script, head.firstChild);
if(callback){
document.addEventListener ? script.addEventListener(“load”, callback, false) : script.onreadystatechange = function() {
if (/loaded|complete/.test(script.readyState)) {
script.onreadystatechange = null
callback()
}
}
}
}
Javascript 相关文章推荐
js 跨域和ajax 跨域问题小结
Jul 01 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
Oct 27 Javascript
jquery ajax提交表单数据的两种实现方法
Apr 29 Javascript
javascript 词法作用域和闭包分析说明
Aug 12 Javascript
P3P Header解决Cookie跨域的问题
Mar 12 Javascript
JQuery以JSON方式提交数据到服务端示例代码
May 05 Javascript
jQuery为动态生成的select元素添加事件的方法
Aug 29 Javascript
js原生跨域_用script标签的简单实现
Sep 24 Javascript
详解用Node.js写一个简单的命令行工具
Mar 01 Javascript
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
用原生JS实现爱奇艺首页导航栏代码实例
Sep 19 Javascript
vue v-on:click传递动态参数的步骤
Sep 11 Javascript
MyEclipse取消验证Js的两种方法
Nov 14 #Javascript
使用JS CSS去除IE链接虚线框的三种方法
Nov 14 #Javascript
javascript unicode与GBK2312(中文)编码转换方法
Nov 14 #Javascript
javascript按位非运算符的使用方法
Nov 14 #Javascript
javascript Array.prototype.slice的使用示例
Nov 14 #Javascript
js取消单选按钮选中示例代码
Nov 14 #Javascript
js实现目录定位正文示例
Nov 14 #Javascript
You might like
example1.php
2006/10/09 PHP
jquery为页面增加快捷键示例
2014/01/31 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
Python中字典映射类型的学习教程
2015/08/20 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
Python中super函数用法实例分析
2019/03/18 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
深入解析神经网络从原理到实现
2019/07/26 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
python 实现超级玛丽游戏
2020/11/25 Python
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
幼儿园教师培训制度
2014/01/16 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书