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 相关文章推荐
JS小功能(offsetLeft实现图片滚动效果)实例代码
Nov 28 Javascript
Jquery节点遍历next与nextAll方法使用示例
Jul 22 Javascript
javascript中通过arguments参数伪装方法重载
Oct 08 Javascript
JavaScript中实现单体模式分享
Jan 29 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
vue.js初学入门教程(1)
Nov 03 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
Oct 14 Javascript
基于Vue的延迟加载插件vue-view-lazy
May 21 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
Jun 07 Javascript
uni-app如何页面传参数的几种方法总结
Apr 28 Javascript
完美解决通过IP地址访问VUE项目的问题
Jul 18 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图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
Django发送html邮件的方法
2015/05/26 Python
Django的session中对于用户验证的支持
2015/07/23 Python
python多线程方式执行多个bat代码
2016/06/07 Python
详解python3实现的web端json通信协议
2016/12/29 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
python获取服务器响应cookie的实例
2018/12/28 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
中科方德软件测试面试题
2016/04/21 面试题
文秘专业应届生求职信范文
2013/11/14 职场文书
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
护士在校生自荐信
2014/02/01 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
2014年市场部工作总结
2014/11/25 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
Python源码解析之List
2021/05/21 Python