这次给大家带来jquery+deferred实现异步顺序加载js文件,jquery+deferred实现异步顺序加载js文件的注意事项有哪些,下面就是实战案例,一起来看一下。
前段时间看了阮一峰的jquery的deferred对象详解一文,对jquery中的deferred的用法了一些了解,今天看到园子里的一篇文章:关于重构js前端框架的失败经验(顺便怀念那些死去的代码),于是把我之前写的一个利用jquery的deferred异步按顺序加载js文件方案分享出来,欢迎指正。
如果你现在对jquery中的deferred还不了解,强烈建议你看一下阮一峰的jquery的deferred对象详解一文。
加载js文件的代码如下:
/*
loading
javascript
asynchronously
loadscript.load(["a.js", "b.js"]);
*/
var loadscript = (function() {
var loadone = function (url) {
var dtd = $.deferred();
var node =
document
.createelement('script');
node.type = "text/javascript";
var onload = function(){
dtd.resolve();
};
$(node).load(onload).bind('readystatechange', function(){
if (node.readystate == 'loaded'){
onload();
}
});
document.
getelementsbytagname
('head')[0].appendchild(node);
node.src = url;
return dtd.promise();
};
var load = function(urls) {
if(!$.isarray(urls)) {
return load([urls]);
}
var ret = [];
for (var i = 0; i < urls.length; i++) {
ret[i] = loadone(urls[i]);
};
return $.when.apply($, ret);
}
return {
load: load
};
})();
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
jquery+xml实现三级联动步骤详解
使用jquery插件ajaxupload进行文件上传
以上就是jquery+deferred实现异步顺序加载js文件的详细内容。