最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js模块加载方式浅析

来源:动视网 责编:小采 时间:2020-11-27 22:32:55
文档

js模块加载方式浅析

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


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

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

最新推荐

猜你喜欢

热门推荐

专题
Top