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 相关文章推荐
删除重复数据的算法
Nov 23 Javascript
[原创]后缀就扩展名为js的文件是什么文件
Dec 06 Javascript
JavaScript中的其他对象
Jan 16 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
Jan 16 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
Mar 19 Javascript
JavaScript奇技淫巧44招【实用】
Dec 11 Javascript
JS高级运动实例分析
Dec 20 Javascript
angularJS 指令封装回到顶部示例详解
Jan 22 Javascript
详解vue父子模版嵌套案例
Mar 04 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
微信小程序自定义弹窗wcPop插件
Nov 19 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
May 11 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
Bootstrap模态对话框的简单使用
2016/04/29 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
JSONP基础知识详解
2017/03/19 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
Android面试题及答案
2015/09/04 面试题
自我鉴定怎么写
2013/12/05 职场文书
婚礼证婚人证婚词
2014/01/08 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
年检委托书
2014/08/30 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
单位接收证明格式
2015/06/18 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript