异步顺序加载 JavaScript 脚本队列
// 动态加载脚本文件
function getScript (url, success) {
var readyState = false,
script = document.createElement('script');
script.charset = 'utf-8';
script.src = url;
// attach handlers for all browsers
script.onload = script.onreadystatechange = function () {
if (!readyState && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
readyState = true;
success && success();
}
};
document.body.appendChild(script);
}
// 异步顺序加载队列
function use (res, callback) {
if (typeof res === 'string') {
var _res = res;
res = [];
res.push(_res);
}
var self = this,
queue = function (fs, cb) {
getScript(fs.shift(), function () {
fs.length ? queue(fs, cb) : cb && cb();
});
};
// execute the queued resources
queue(res, callback);
}