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插件集合推荐
Apr 19 Javascript
详解JavaScript函数绑定
Aug 18 Javascript
jQuery 选择器详解
Jan 19 Javascript
jquery使用animate方法实现控制元素移动
Mar 27 Javascript
javascript中call和apply的用法示例分析
Apr 02 Javascript
浅谈JavaScript字符串与数组
Jun 03 Javascript
原生JS实现旋转木马式图片轮播插件
Apr 25 Javascript
javascript实现获取图片大小及图片等比缩放的方法
Nov 24 Javascript
JQuery中Ajax的操作完整例子
Mar 07 Javascript
node.js 中间件express-session使用详解
May 20 Javascript
通过函数作用域和块级作用域看javascript的作用域链
Aug 05 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
简单了解JavaScript异步
2019/05/23 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
python通过实例讲解反射机制
2019/10/17 Python
python第三方库学习笔记
2020/02/07 Python
python 实现IP子网计算
2021/02/18 Python
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
反邪教宣传工作方案
2014/05/07 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
九年级历史教学反思
2016/02/19 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python