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 】
相关推荐:
网页设计与网站制作内容,怎样注册网站?
Python制作简易注册登录系统
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
桂林网站制作公司有哪些,桂林马拉松怎么报名?
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
javascript读取文本节点方法小结
如何在阿里云通过域名搭建网站?
如何为不同团队 ID 动态生成多个独立按钮
高防服务器如何保障网站安全无虞?
Laravel distinct去重查询_Laravel Eloquent去重方法
如何在橙子建站中快速调整背景颜色?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
香港服务器网站卡顿?如何解决网络延迟与负载问题?
5种Android数据存储方式汇总
如何快速上传自定义模板至建站之星?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
北京网站制作的公司有哪些,北京白云观官方网站?
LinuxShell函数封装方法_脚本复用设计思路【教程】
JavaScript如何操作视频_媒体API怎么控制播放
Android Socket接口实现即时通讯实例代码
Laravel如何生成URL和重定向?(路由助手函数)
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Laravel如何使用Vite进行前端资源打包?(配置示例)
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
敲碗10年!Mac系列传将迎来「触控与联网」双革新
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
微信h5制作网站有哪些,免费微信H5页面制作工具?
Thinkphp 中 distinct 的用法解析
Swift中switch语句区间和元组模式匹配
Laravel中的withCount方法怎么高效统计关联模型数量
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
zabbix利用python脚本发送报警邮件的方法
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
如何用搬瓦工VPS快速搭建个人网站?
深入理解Android中的xmlns:tools属性
如何快速生成专业多端适配建站电话?

