js下利用控制器載入對應腳本
更新時間:2010年07月17日 20:33:01 作者:
因項目開發(fā)需要,須將每一個方法都獨立成單獨的js文件以便載入、維護,所以,必須需要有一個控制器用于載入這些方法。
我的思路是,在編寫獨立模塊的時候,注意將這些方法集成到$.tools對象中,接下來,在頁面中,調(diào)用控制器載入模塊,并在載入完成后判斷$.tools中對象的個數(shù)與預定義載入的模塊數(shù)是否相等,如不等繼續(xù)等待,如相等執(zhí)行回調(diào)函數(shù)。
/*
* LOADScript Mod
* Params url1,url2,url3,url4,fn
*/
jQuery.extend({
loadMod: function(){
var argleng = arguments.length,
arglast = arguments[argleng-1],
fn = false,
queue = [],
checknum = 0,
timer = null
// init
if(jQuery.isFunction(arglast)){argleng = argleng -1;fn=arglast;}
for (var i=0;i<argleng ;i++){
queue.push(arguments[i]);
}
// getscript
jQuery.each(queue,function(i,o){
jQuery.getScript(o);
});
// check load ready?
loadReady();
function loadReady(){
if(jQuery.tools != undefined){
checknum = 0;
$.each(jQuery.tools,function(i,n){
if(jQuery.isPlainObject(n)){checknum++;}
});
}
if(checknum != argleng){
clearTimeout(timer);
timer = setTimeout(loadReady, 100);
}else{
if(!!fn){fn.call(document.jQuery)}
}
}
}
});
// 使用方法
$.loadMod('a.js','b.js','c.js',function(){
alert('success!');
});
復制代碼 代碼如下:
/*
* LOADScript Mod
* Params url1,url2,url3,url4,fn
*/
jQuery.extend({
loadMod: function(){
var argleng = arguments.length,
arglast = arguments[argleng-1],
fn = false,
queue = [],
checknum = 0,
timer = null
// init
if(jQuery.isFunction(arglast)){argleng = argleng -1;fn=arglast;}
for (var i=0;i<argleng ;i++){
queue.push(arguments[i]);
}
// getscript
jQuery.each(queue,function(i,o){
jQuery.getScript(o);
});
// check load ready?
loadReady();
function loadReady(){
if(jQuery.tools != undefined){
checknum = 0;
$.each(jQuery.tools,function(i,n){
if(jQuery.isPlainObject(n)){checknum++;}
});
}
if(checknum != argleng){
clearTimeout(timer);
timer = setTimeout(loadReady, 100);
}else{
if(!!fn){fn.call(document.jQuery)}
}
}
}
});
// 使用方法
$.loadMod('a.js','b.js','c.js',function(){
alert('success!');
});
相關(guān)文章
動態(tài)加載js、css等文件跨iframe實現(xiàn)
這篇文章主要介紹了動態(tài)加載js、css等文件跨iframe實現(xiàn)的方法,需要的朋友可以參考下2014-02-02
PhotoShop給圖片自動添加邊框及EXIF信息的JS腳本
這篇文章主要介紹了PhotoShop給圖片自動添加邊框及EXIF信息的JS腳本,本文給出效果圖和實現(xiàn)代碼,需要的朋友可以參考下2015-02-02
ES6使用新特性Proxy實現(xiàn)的數(shù)據(jù)綁定功能實例
這篇文章主要介紹了ES6使用新特性Proxy實現(xiàn)的數(shù)據(jù)綁定功能,結(jié)合具體實例形式分析了ES6使用Proxy實現(xiàn)數(shù)據(jù)綁定具體原理、操作步驟與相關(guān)注意事項,需要的朋友可以參考下2020-05-05

