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 相关文章推荐
13 个JavaScript 性能提升技巧分享
Jul 26 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
Oct 22 Javascript
Javascript字符串浏览器兼容问题分析
Dec 01 Javascript
JavaScript数据库TaffyDB用法实例分析
Jul 27 Javascript
javascript实现类似百度分享功能的方法
Jul 27 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
Jun 24 Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 Javascript
微信小程序 石头剪刀布实例代码
Jan 04 Javascript
第一次记录Bootstrap table学习笔记(1)
May 18 Javascript
JavaScript实现左侧菜单效果
Dec 14 Javascript
js DOM的事件常见操作实例详解
Dec 16 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
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
python+opencv识别图片中的圆形
2020/03/25 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
python 读取修改pcap包的例子
2019/07/23 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Python之变量类型和if判断方式
2020/05/05 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
为什么要使用servlet
2016/01/17 面试题
手机银行营销方案
2014/03/14 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
小学生安全责任书
2014/07/25 职场文书
房产授权委托书范本
2014/09/22 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang