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 相关文章推荐
jQuery 源码分析笔记(3) Deferred机制
Jun 19 Javascript
技术男用来对妹子表白的百度首页
Jul 23 Javascript
javascript模拟map输出与去除重复项的方法
Feb 09 Javascript
jquery任意位置浮动固定层插件用法实例
May 29 Javascript
js实现的早期滑动门菜单效果代码
Aug 27 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
jQuery实现6位数字密码输入框
Dec 29 Javascript
vue 中directive功能的简单实现
Jan 05 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
vue中使用WX-JSSDK的两种方法(推荐)
Jan 18 Javascript
JS中间件设计模式的深入探讨与实例分析
Apr 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
php的大小写敏感问题整理
2011/12/29 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
Python实现的自定义多线程多进程类示例
2018/03/23 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
python使用turtle绘制分形树
2018/06/22 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
实例讲解python中的序列化知识点
2018/10/08 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
应届生的求职推荐信范文
2013/11/30 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
初三学习计划书范文
2014/04/30 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
加油口号大全
2014/06/13 职场文书
公司合作协议范文
2014/10/01 职场文书
在职证明格式样本
2015/06/15 职场文书
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏