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 left,right,mid函数
Jun 10 Javascript
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
jquery实现页面图片等比例放大缩小功能
Feb 12 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
jQuery中hasClass()方法用法实例
Jan 06 Javascript
JS简单实现String转Date的方法
Mar 02 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
Nov 22 Javascript
angular4 JavaScript内存溢出问题
Mar 06 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 Javascript
Javascript ParentNode和ChildNode接口原理解析
Mar 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
dojo 之基础篇
2007/03/24 Javascript
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
javascript 常用功能总结
2012/03/18 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
web打印小结
2017/01/11 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
Python gevent协程切换实现详解
2020/09/14 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
创先争优活动方案
2014/02/12 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
销售总经理岗位职责
2014/03/15 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
债务追讨律师函
2015/06/24 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
配置Kubernetes外网访问集群
2022/03/31 Servers
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis