js模块加载方式浅析
发布时间 - 2026-01-11 02:45:43 点击率:次简介: 前端模块化开发日渐鼎盛,如何将零散的插件或者是普通的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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Java遍历集合的三种方式
轻松掌握MySQL函数中的last_insert_id()
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
用v-html解决Vue.js渲染中html标签不被解析的问题
动图在线制作网站有哪些,滑动动图图集怎么做?
Java类加载基本过程详细介绍
Linux系统运维自动化项目教程_Ansible批量管理实战
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Laravel如何使用Eloquent进行子查询
Laravel如何处理表单验证?(Requests代码示例)
海南网站制作公司有哪些,海口网是哪家的?
JavaScript Ajax实现异步通信
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
java中使用zxing批量生成二维码立牌
利用 Google AI 进行 YouTube 视频 SEO 描述优化
网站制作报价单模板图片,小松挖机官方网站报价?
如何快速搭建高效简练网站?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Laravel如何使用Blade模板引擎?(完整语法和示例)
Laravel distinct去重查询_Laravel Eloquent去重方法
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
javascript中的try catch异常捕获机制用法分析
企业网站制作这些问题要关注
如何在阿里云高效完成企业建站全流程?
JavaScript如何实现错误处理_try...catch如何捕获异常?
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
个人网站制作流程图片大全,个人网站如何注销?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
如何选择PHP开源工具快速搭建网站?
音响网站制作视频教程,隆霸音响官方网站?
如何彻底卸载建站之星软件?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
JavaScript常见的五种数组去重的方式
利用vue写todolist单页应用
Laravel怎么上传文件_Laravel图片上传及存储配置
如何快速配置高效服务器建站软件?
如何在建站之星网店版论坛获取技术支持?
如何在腾讯云服务器快速搭建个人网站?
香港服务器如何优化才能显著提升网站加载速度?
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Laravel如何创建自定义Facades?(详细步骤)
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?

