首页 > 开发 > JS > 正文

js模块加载方式浅析

2024-05-06 16:38:59
字体:
来源:转载
供稿:网友

简介: 前端模块化开发日渐鼎盛,如何将零散的插件或者是普通的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))

调用:

_Req._config({    _coreDir: "../jq-package",          _moduleArr: [            ['js/ui-dialog.js', 'css/dialog.css']          ], //模块数组 });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表