js模塊加載方式淺析
簡介: 前端模塊化開發(fā)日漸鼎盛,如何將零散的插件或者是普通的js腳本文件統(tǒng)一管理及引用,是眾多開發(fā)者共同的目標(biāo)。本人是從事.net開發(fā)的,最近對前端的一些東西特別的感興趣,也會嘗試的夾雜一點(diǎn)自己的想法,寫一些小東西。東西不牛逼,但是感覺用起來還是方便那么一點(diǎn)的。
下面就展示一下簡短的小代碼。
中心思想:通過外部調(diào)用事先封裝好的模塊加載方法,傳入?yún)?shù)(包括主目錄及模塊js或者css的目錄 ),在程序運(yùn)行的同時,會動態(tài)的將相應(yīng)的css或者是js代碼追加引用到head標(biāo)簽內(nèi),這樣,就可以使用被引用的文件的樣式或者方法啦。
源文件:
(function(req) {
window._Req= req;
})((function($) {
var _factory = function() {}; //模塊工廠
//docker
_factory.prototype = {
_origin: location.origin || location.protocol + "http://" + location.host,//域名地址
_aim: null,
_config: function(param) {
var _default = { //默認(rèn)參數(shù)
_coreDir: "",
_moduleArr: [
['', '']
], //模塊數(shù)組
},
_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))
調(diào)用:
_Req._config({
_coreDir: "../jq-package",
_moduleArr: [
['js/ui-dialog.js', 'css/dialog.css']
], //模塊數(shù)組
});
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Extjs4.1.x 框架搭建 采用Application動態(tài)按需加載MVC各模塊完美實(shí)現(xiàn)
- Node.js模塊加載詳解
- AngularJs動態(tài)加載模塊和依賴注入詳解
- node.js使用require()函數(shù)加載模塊
- 深入探尋seajs的模塊化與加載方式
- 利用Dojo和JSON建立無限級AJAX動態(tài)加載的功能模塊樹
- seaJs的模塊定義和模塊加載淺析
- Windows下使用apache模塊實(shí)現(xiàn)合并多個js、css提高網(wǎng)頁加載速度
- in.js 一個輕量級的JavaScript顆粒化模塊加載和依賴關(guān)系管理解決方案
- 根據(jù)配置文件加載js依賴模塊
相關(guān)文章
JS實(shí)現(xiàn)獲取進(jìn)今年第幾天是周幾的方法分析
這篇文章主要介紹了JS實(shí)現(xiàn)獲取進(jìn)今年第幾天是周幾的方法,結(jié)合實(shí)例形式對比分析了JavaScript進(jìn)行日期與天數(shù)運(yùn)算相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06
JS 判斷undefined的實(shí)現(xiàn)代碼
JS中如何判斷undefined2009-11-11
如何實(shí)現(xiàn)textarea里的不同文本顯示不同顏色
如何實(shí)現(xiàn)textarea里的不同文本顯示不同顏色呢?控制textarea的style設(shè)置Textarea以及把文本放到標(biāo)記里都不會起作用,下面有個不錯的解決方法,感興趣的朋友可以了解下2014-01-01
alixixi runcode.asp的代碼不錯的應(yīng)用
alixixi runcode.asp的代碼不錯的應(yīng)用...2007-08-08
JavaScript中的動態(tài)?import()用法示例解析
這篇文章主要為大家介紹了JavaScript中的動態(tài)import()用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

