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 相关文章推荐
javascript 面向对象全新理练之原型继承
Dec 03 Javascript
javascript高级学习笔记整理
Aug 14 Javascript
关于JS中prototype的理解
Sep 07 Javascript
jQuery获取当前点击的对象元素(实现代码)
May 19 Javascript
javascript小数精度丢失的完美解决方法
May 31 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
Feb 05 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
Mar 29 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 Javascript
详解微信第三方小程序代开发
Jun 23 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
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
Composer设置忽略版本匹配的方法
2016/04/27 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
Maps Javascript
2007/01/22 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
Python标准库之sqlite3使用实例
2014/11/25 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
Python中的类与类型示例详解
2019/07/10 Python
Django的性能优化实现解析
2019/07/30 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
材料工程专业毕业生求职信
2014/03/04 职场文书
服装采购员岗位职责
2014/03/15 职场文书
解除劳动合同协议书
2014/04/14 职场文书
劳资协议书范本
2014/04/23 职场文书
医学求职自荐信
2014/06/21 职场文书
关键在于落实心得体会
2014/09/03 职场文书
整改报告怎么写
2014/11/06 职场文书
清洁工个人工作总结
2015/03/05 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫