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代码
Mar 16 Javascript
JavaScript 创建对象和构造类实现代码
Jul 30 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
Jan 31 Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
jQuery $.extend()用法总结
Jun 15 Javascript
js propertychange和oninput事件
Sep 28 Javascript
JQuery记住用户名密码实现下次自动登录功能
Apr 27 Javascript
css如何让浮动元素水平居中
Aug 07 Javascript
Angular如何在应用初始化时运行代码详解
Jun 11 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
Jul 21 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中邮箱地址正则表达式实现与详解
2012/04/24 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
python调用java的Webservice示例
2014/03/10 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
python杀死一个线程的方法
2015/09/06 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python django中8000端口被占用的解决
2019/12/17 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
python 8种必备的gui库
2020/08/27 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
探亲假请假条
2014/04/11 职场文书
《灰椋鸟》教学反思
2014/04/27 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
2014年招商工作总结
2014/11/22 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书