seajs中模块依赖的加载处理实例分析


Posted in Javascript onOctober 10, 2017

本文实例讲述了seajs中模块依赖的加载处理。分享给大家供大家参考,具体如下:

最近在做项目的时候发现一些关于模块依赖问题,特记录下:

比如现有3个文件:

/*init.js*/
define(function(require, exports, module){
 require('jquery');
 require('jquery.plugA');
})
/*jquery.plugA.js*/
define(function(require, exports, module){
 require('jquery');
 require('jquery.plugB');
 //code...
})
/*jquery.plugB.js*/
define(functioin(require, exports, module){
 require('jquery');
 //code...
})

比如执行init.js时,init.js、jquery.plugA.js、jquery.plugB.js都会依赖到jquery,那么这种情况下seajs对jquery如何处理的呢?只执行一次?执行多次?还是其他方式?

此处参考玉伯的回答:

我对模块调用的理解是,调用是指获取某个模块的接口。在 SeaJS 里,只有 seajs.use, require.async, 和 require 会产生模块调用,比如: var a = require('./a')执行 require(‘./a') 时,会获取模块的接口,如果是第一次调用,会初始化模块 a,以后再调用时,直接返回模块 a 的接口; define 只是注册模块信息,比如打包之后:define(id, deps, factory) 是注册了一个模块到 seajs.cache 中,define 类似:seajs.cache[id] = { id: id, dependencies: deps, factory: factory }

是纯注册信息。

require('./a') 时,才会执行 seajs.cache['a'].factory, 执行后得到 seajs.cache['a'].exports

扩展:URI与URL的区别

URI:Uniform Resource Identifiers ,统一资源标识符;

URL:Uniform Resource Locators ,统一资源定位符;

URN:Uniform Resource Names,统一资源名称

URL,URN是URI的子集.

参考

Module.STATUS的具体含义:https://github.com/seajs/seajs/issues/303
分清 URI、URL 和 URNhttp://www.ibm.com/developerworks/cn/xml/x-urlni.html

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery text,radio,checkbox,select操作实现代码
Jul 09 Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
Aug 28 Javascript
用javascript添加控件自定义属性解析
Nov 25 Javascript
jquery自动切换tabs选项卡的具体实现
Dec 24 Javascript
简单谈谈React中的路由系统
Jul 25 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
微信小程序实现动态获取元素宽高的方法分析
Dec 10 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
json字符串对象转换代码实例
Sep 28 Javascript
vue 判断页面是首次进入还是再次刷新的实例
Nov 05 Javascript
基于JavaScript实现简单的轮播图
Mar 03 Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 #Javascript
认识jQuery的Promise的具体使用方法
Oct 10 #jQuery
JavaScript如何获取到导航条中HTTP信息
Oct 10 #Javascript
使用Dropzone.js上传的示例代码
Oct 10 #Javascript
React中上传图片到七牛的示例代码
Oct 10 #Javascript
基于对象合并功能的实现示例
Oct 10 #Javascript
聊聊Vue.js的template编译的问题
Oct 09 #Javascript
You might like
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
学习python处理python编码问题
2011/03/13 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
Django中使用Celery的方法示例
2018/11/29 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python通过socketserver处理多个链接
2020/03/18 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
python regex库实例用法总结
2021/01/03 Python
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
AJax面试题
2014/11/25 面试题
应届医学毕业生求职信分享
2013/12/02 职场文书
初中学生评语大全
2014/04/24 职场文书
企业宣传工作方案
2014/06/02 职场文书
入团介绍人意见范文
2015/06/04 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
Java用自带的Image IO给图片添加水印
2021/06/15 Java/Android
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android