import.js
Usage Like This:
oop.define('wldm.core.import', {
constructor: function() {},
paths : {
'app' : 'js/app',
'wldm' : 'js/lib/wldm'
},
memo : {
'app' : {},
'wldm' : {}
},
'import': function(a) {
var me = this;
var i, memo = me.memo;
for (i = 0, j = a.length; i < j; i++) {
var clsName = a[i];
var modName = clsName.split('.')[0];
if(memo[modName][clsName] === undefined) {
// async load
var url = me.paths[modName] + '/../' + clsName.replace(/\./g, '/') + '.js';
me.load(modName, clsName, url);
}
}
},
load: function(modName, clsName, url){
var me = this;
var head = document.getElementsByTagName('head')[0];
var node = document.createElement('script');
node.type = 'text/javascript';
node.charset = 'utf-8';
node.async = true;
node.src = url;
if (node.attachEvent) {
node.attachEvent('onreadystatechange', success);
} else {
node.addEventListener('load', success, false);
}
head.appendChild(node);
function success(e) {
var node = e.currentTarget || e.srcElement;
if (e.type === 'load' || (/^(complete|loaded)$/.test(node.readyState))) {
me.memo[modName][clsName] = true;
}
}
}
});
Usage Like This:
oop.import(['app.login.login']);