淺談js模組載入方式(初級)

來源:互聯網
上載者:User

標籤:error   foreach   dialog   ram   substr   doc   extend   img   目標   

 1.簡介:  前端模組化開發日漸鼎盛,如何將零散的外掛程式或者是普通的js指令檔統一管理及引用,是眾多開發人員共同的目標。本人是從事.net開發的,最近對前端的一些東西特別的感興趣,也會嘗試的夾雜一點自己的想法,寫一些小東西。東西不牛逼,但是感覺用起來還是方便那麼一點的。下面就展示一下簡短的小代碼。

 2.中心思想:通過外部調用事先封裝好的模組載入方法,傳入參數(包括主目錄及模組js或者css的目錄 ),在程式啟動並執行同時,會動態將相應的css或者是js代碼追加引用到head標籤內,這樣,就可以使用被引用的檔案的樣式或者方法啦。

 1 (function(req) { 2     window._Req= req; 3 })((function($) { 4     var _factory = function() {}; //模組工廠 5     //docker 6     _factory.prototype = { 7         _origin: location.origin || location.protocol + "//" + location.host,//網域名稱地址 8         _aim: null, 9         _config: function(param) {10             var _default = { //預設參數11                     _coreDir: "",12                     _moduleArr: [13                         [‘‘, ‘‘]14                     ], //模組數組15                 },16                 _opt = {};17             $.extend(_opt, _default);18             if (typeof param === ‘object‘)19                 $.extend(_opt, param);20             this._aim = _opt;21             this._load();   //載入模組22         },23         _load: function() {24             try {25                 var _modules = this._aim._moduleArr,26                     _core = this._aim._coreDir;27                 _modules.forEach(function(_element) {28                     _element.forEach(function(_ele) {29                         var _index = _ele.lastIndexOf(‘.‘), 30                             _moduleType = _ele.substring(_index + 1), 31                             _moduleDir = _core + ‘/‘ + _ele, 32                             _module = null;33                         switch (_moduleType) {34                             case ‘js‘:35                                 _module = document.createElement(‘script‘);36                                 _module.src = _moduleDir;37                                 break;38                             case ‘css‘:39                                 _module = document.createElement(‘link‘);40                                 _module.href = _moduleDir;41                                 _module.rel = ‘stylesheet‘;42                                 break;43                             default:44                                 console.error("對不起模組類型不符");45                                 break;46                         }47                         document.head.appendChild(_module); 48                     });49                 }, this);50             } catch (ex) {51                 throw ex;52             }53         }54     };55     return new _factory(); //返回工廠56 })(jQuery))
源檔案
1  _Req._config({2        _coreDir: "../jq-package",3                     _moduleArr: [4                         [‘js/ui-dialog.js‘, ‘css/dialog.css‘]5                     ], //模組數組6   });
調用

 

淺談js模組載入方式(初級)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.