全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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))

调用:

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

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


# js  # 模块  # 加载  # Extjs4.1.x 框架搭建 采用Application动态按需加载MVC各模  # Node.js模块加载详解  # AngularJs动态加载模块和依赖注入详解  # node.js使用require()函数加载模块  # 深入探寻seajs的模块化与加载方式  # 利用Dojo和JSON建立无限级AJAX动态加载的功能模块树  # seaJs的模块定义和模块加载浅析  # Windows下使用apache模块实现合并多个js、css提高网页加载速度  # in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案  # 根据配置文件加载js依赖模块  # 或者是  # 自己的  # 也会  # 感兴趣  # 人是  # 如何将  # 大家多多  # 装好  # 就可以  # 不匹配  # 主目录  # protocol  # origin  # host  # location  # docker  # prototype  # _origin  # _moduleArr 


相关文章: 定制建站是什么?如何实现个性化需求?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  建站之星伪静态规则如何正确配置?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  香港服务器租用每月最低只需15元?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何快速完成中国万网建站详细流程?  宝塔Windows建站如何避免显示默认IIS页面?  如何快速搭建虚拟主机网站?新手必看指南  建站主机选哪家性价比最高?  北京网站制作的公司有哪些,北京白云观官方网站?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  ,购物网站怎么盈利呢?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何在万网ECS上快速搭建专属网站?  音乐网站服务器如何优化API响应速度?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何选择适合PHP云建站的开源框架?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何快速上传建站程序避免常见错误?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  免费视频制作网站,更新又快又好的免费电影网站?  如何在阿里云域名上完成建站全流程?  建站之星2.7模板快速切换与批量管理功能操作指南  如何用y主机助手快速搭建网站?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  宝塔建站无法访问?如何排查配置与端口问题?  香港服务器部署网站为何提示未备案?  宁波自助建站系统如何快速打造专业企业网站?  代购小票制作网站有哪些,购物小票的简要说明?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  建站主机解析:虚拟主机配置与服务器选择指南  如何高效利用200m空间完成建站?  韩国服务器如何优化跨境访问实现高效连接?  大连 网站制作,大连天途有线官网?  css网站制作参考文献有哪些,易聊怎么注册?  如何在VPS电脑上快速搭建网站?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  建站之星在线客服如何快速接入解答?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  建站之星如何助力网站排名飙升?揭秘高效技巧  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何在IIS7中新建站点?详细步骤解析  如何获取免费开源的自助建站系统源码? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。