源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

seajs中模块依赖的加载处理实例分析

  • 时间:2020-09-02 02:39 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:seajs中模块依赖的加载处理实例分析
本文实例讲述了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如何处理的呢?只执行一次?执行多次?还是其他方式? [b]此处参考玉伯的回答:[/b] 我对模块调用的理解是,调用是指获取某个模块的接口。在 SeaJS 里,只有 seajs.use, require.async, 和 require 会产生模块调用,比如: [code]var a = require('./a')[/code] 在执行 require(‘./a') 时,会获取模块的接口,如果是第一次调用,会初始化模块 a,以后再调用时,直接返回模块 a 的接口; define 只是注册模块信息,比如打包之后:[code]define(id, deps, factory)[/code] 是注册了一个模块到 seajs.cache 中,define 类似:[code]seajs.cache[id] = { id: id, dependencies: deps, factory: factory }[/code] 是纯注册信息。 而 [code]require('./a')[/code] 时,才会执行 [code]seajs.cache['a'].factory[/code], 执行后得到 [code]seajs.cache['a'].exports[/code] [b]扩展:URI与URL的区别[/b] URI:Uniform Resource Identifiers ,统一资源标识符; URL:Uniform Resource Locators ,统一资源定位符; URN:Uniform Resource Names,统一资源名称 URL,URN是URI的子集. [b]参考[/b] Module.STATUS的具体含义:https://github.com/seajs/seajs/issues/303 分清 URI、URL 和 URNhttp://www.ibm.com/developerworks/cn/xml/x-urlni.html 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《[url=http://www.1sucai.cn/Special/433.htm]JavaScript扩展技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/933.htm]JavaScript字符与字符串操作技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/119.htm]JavaScript数学运算用法总结[/url]》、《[url=http://www.1sucai.cn/Special/313.htm]JavaScript中json操作技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/439.htm]JavaScript错误与调试技巧总结[/url]》及《[url=http://www.1sucai.cn/Special/297.htm]JavaScript数据结构与算法技巧总结[/url]》 希望本文所述对大家JavaScript程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部