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最新动画教程+iso光盘下载
Jan 22 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
关于javaScript注册click事件传递参数的不成功问题
Jul 18 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
Jun 08 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
vue分类筛选filter方法简单实例
Mar 30 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
Js利用Canvas实现图片压缩功能
Sep 13 Javascript
Javascript 严格模式use strict详解
Sep 16 Javascript
图文介绍Vue父组件向子组件传值
Feb 17 Javascript
Angular6中使用Swiper的方法示例
Jul 09 Javascript
JavaScript实现图片伪异步上传过程解析
Apr 10 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
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
php修改数组键名的方法示例
2017/04/15 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
PHP开发的一般流程
2013/08/13 面试题
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
《美丽的黄昏》教学反思
2014/02/28 职场文书
什么是就业协议书
2014/04/17 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
公司口号大全
2014/06/11 职场文书
社保委托书怎么写
2014/08/02 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
感谢信范文大全
2015/01/23 职场文书
2015年读书月活动总结
2015/03/26 职场文书
整脏治乱工作简报
2015/07/21 职场文书
关于EntityWrapper的in用法
2022/03/22 Java/Android