js模块加载方式浅析-创新互联
简介: 前端模块化开发日渐鼎盛,如何将零散的插件或者是普通的js脚本文件统一管理及引用,是众多开发者共同的目标。本人是从事.net开发的,最近对前端的一些东西特别的感兴趣,也会尝试的夹杂一点自己的想法,写一些小东西。东西不牛逼,但是感觉用起来还是方便那么一点的。

下面就展示一下简短的小代码。
中心思想:通过外部调用事先封装好的模块加载方法,传入参数(包括主目录及模块js或者css的目录 ),在程序运行的同时,会动态的将相应的css或者是js代码追加引用到head标签内,这样,就可以使用被引用的文件的样式或者方法啦。
源文件:
(function(req) {
window._Req= req;
})((function($) {
var _factory = function() {}; //模块工厂
//docker
_factory.prototype = {
_origin: location.origin || location.protocol + "//" + location.host,//域名地址
_aim: null,
_config: function(param) {
var _default = { //默认参数
_coreDir: "",
_moduleArr: [
['', '']
], //模块数组
},
_opt = {};
$.extend(_opt, _default);
if (typeof param === 'object')
$.extend(_opt, param);
this._aim = _opt;
this._load(); //加载模块
},
_load: function() {
try {
var _modules = this._aim._moduleArr,
_core = this._aim._coreDir;
_modules.forEach(function(_element) {
_element.forEach(function(_ele) {
var _index = _ele.lastIndexOf('.'),
_moduleType = _ele.substring(_index + 1),
_moduleDir = _core + '/' + _ele,
_module = null;
switch (_moduleType) {
case 'js':
_module = document.createElement('script');
_module.src = _moduleDir;
break;
case 'css':
_module = document.createElement('link');
_module.href = _moduleDir;
_module.rel = 'stylesheet';
break;
default:
console.error("对不起模块类型不匹配");
break;
}
document.head.appendChild(_module);
});
}, this);
} catch (ex) {
throw ex;
}
}
};
return new _factory(); //返回工厂
})(jQuery))另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页标题:js模块加载方式浅析-创新互联
浏览地址:http://www.jxjierui.cn/article/peohj.html


咨询
建站咨询
