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 相关文章推荐
细品javascript 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
Oct 21 Javascript
基于jquery tab切换(防止页面刷新)
May 23 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
在jQuery中处理XML数据的大致方法
Aug 14 Javascript
js命名空间写法示例
Dec 18 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
微信小程序template模板实例详解
Oct 27 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
bootstrap下拉框动态赋值方法
Aug 10 Javascript
JavaScript类的继承操作实例总结
Dec 20 Javascript
利用 JavaScript 实现并发控制的示例代码
Dec 31 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
星际争霸任务指南——神族
2020/03/04 星际争霸
php设计模式 Singleton(单例模式)
2011/06/26 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
Python解惑之整数比较详解
2017/04/24 Python
python下10个简单实例代码
2017/11/15 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
python操作cfg配置文件方式
2019/12/22 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Python几种常见算法汇总
2020/06/02 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
世界上最大的二手相机店:KEN
2017/05/17 全球购物
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
小学生节约用水倡议书
2014/05/15 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
应收账款管理制度
2015/08/06 职场文书
任命书格式模板
2015/09/22 职场文书
2016新年晚会开场白
2015/12/03 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python