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 相关文章推荐
Prototype ObjectRange对象学习
Jul 19 Javascript
在javascript将NodeList作为Array数组处理的方法
Jul 09 Javascript
javaScript同意等待代码实现心得
Jan 01 Javascript
JS中动态添加事件(绑定事件)的代码
Jan 09 Javascript
js日历功能对象
Jan 12 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
纯js三维数组实现三级联动效果
Feb 07 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
基于Express框架使用POST传递Form数据
Aug 10 Javascript
vue输入框使用模糊搜索功能的实现代码
May 26 Javascript
vue数据更新UI不刷新显示的解决办法
Aug 06 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
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
jquery实现网页查找功能示例分享
2014/02/12 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
javascript每日必学之继承
2016/02/23 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
2020/04/09 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
Python中的map、reduce和filter浅析
2014/04/26 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
基于Django实现日志记录报错信息
2019/12/17 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
总经理秘书工作职责
2013/12/26 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
求职信范文怎么写
2015/03/19 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android