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 相关文章推荐
Dom在ajax技术中的作用说明
Oct 25 Javascript
在浏览器中获取当前执行的脚本文件名的代码
Jul 19 Javascript
使用js实现数据格式化
Dec 03 Javascript
浅谈javascript面向对象程序设计
Jan 21 Javascript
jQuery控制cookie过期时间的方法
Apr 07 Javascript
js简单实现竖向tab选项卡的方法
May 04 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
详解 vue.js用法和特性
Oct 15 Javascript
vue 国际化 vue-i18n 双语言 语言包
Jun 07 Javascript
微信小程序日历效果
Dec 29 Javascript
详解javascript设计模式三:代理模式
Mar 25 Javascript
前端js中的事件循环eventloop机制详解
May 15 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如何透过ODBC来存取数据库
2006/10/09 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
浅析为什么a="abc" 不等于 a=new String("abc")
2017/10/25 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
python的else子句使用指南
2016/02/27 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
MADE法国:提供原创设计师家具
2018/09/18 全球购物
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
自荐信结尾
2013/10/27 职场文书
出生公证书样本
2014/04/04 职场文书
新闻学专业求职信
2014/07/28 职场文书
优秀团员自我评价
2015/03/10 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书