javascript异步加载脚本并触发回调函数
2014-04-21 16:48
330 查看
一、语法:
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($)
});
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,
s;
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 异步加载 JavaScript 脚本
- JS/JavaScript前台异步加载并调用回调函数
- 你不知道的JavaScript--Item26 异步的脚本加载
- 你不知道的JavaScript--Item26 异步的脚本加载
- javascript带回调函数的异步脚本载入方法实例分析
- 跟我学习javascript的异步脚本加载
- 动态添加脚本,并触发回调函数 初步实现按需加载
- JavaScript—动态添加脚本,并触发回调函数
- 实用技巧:使用 jQuery 异步加载 JavaScript 脚本
- javascript带回调函数的异步脚本载入方法实例分析
- JavaScript 动态添加脚本,并触发回调函数的实现代码
- 使用jQuery异步加载 JavaScript脚本解决方案
- 实用技巧:使用 jQuery 异步加载 JavaScript 脚本
- JavaScript学习--Item26 异步的脚本加载
- JavaScript 动态添加脚本,并触发回调函数的实现代码
- 跟我学习javascript的异步脚本加载
- 使用jQuery异步加载 JavaScript脚本解决方案
- JavaScript异步加载浅析
- Javascript 异步加载详解