seajs中模塊依賴的加載處理實(shí)例分析
本文實(shí)例講述了seajs中模塊依賴的加載處理。分享給大家供大家參考,具體如下:
最近在做項(xiàng)目的時(shí)候發(fā)現(xiàn)一些關(guān)于模塊依賴問(wèn)題,特記錄下:
比如現(xiàn)有3個(gè)文件:
/*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...
})
比如執(zhí)行init.js時(shí),init.js、jquery.plugA.js、jquery.plugB.js都會(huì)依賴到j(luò)query,那么這種情況下seajs對(duì)jquery如何處理的呢?只執(zhí)行一次?執(zhí)行多次?還是其他方式?
此處參考玉伯的回答:
我對(duì)模塊調(diào)用的理解是,調(diào)用是指獲取某個(gè)模塊的接口。在 SeaJS 里,只有 seajs.use, require.async, 和 require 會(huì)產(chǎn)生模塊調(diào)用,比如: var a = require('./a') 在執(zhí)行 require(‘./a') 時(shí),會(huì)獲取模塊的接口,如果是第一次調(diào)用,會(huì)初始化模塊 a,以后再調(diào)用時(shí),直接返回模塊 a 的接口; define 只是注冊(cè)模塊信息,比如打包之后:define(id, deps, factory) 是注冊(cè)了一個(gè)模塊到 seajs.cache 中,define 類似:seajs.cache[id] = { id: id, dependencies: deps, factory: factory }
是純注冊(cè)信息。
而 require('./a') 時(shí),才會(huì)執(zhí)行 seajs.cache['a'].factory, 執(zhí)行后得到 seajs.cache['a'].exports
擴(kuò)展:URI與URL的區(qū)別
URI:Uniform Resource Identifiers ,統(tǒng)一資源標(biāo)識(shí)符;
URL:Uniform Resource Locators ,統(tǒng)一資源定位符;
URN:Uniform Resource Names,統(tǒng)一資源名稱
URL,URN是URI的子集.
參考
Module.STATUS的具體含義:https://github.com/seajs/seajs/issues/303
分清 URI、URL 和 URNhttp://www.ibm.com/developerworks/cn/xml/x-urlni.html
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript擴(kuò)展技巧總結(jié)》、《JavaScript字符與字符串操作技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
 seaJs使用心得之exports與module.exports的區(qū)別實(shí)例分析
這篇文章主要介紹了seaJs使用心得之exports與module.exports的區(qū)別,結(jié)合實(shí)例形式分析了exports與module.exports具體功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-10-10
 seajs學(xué)習(xí)之模塊的依賴加載及模塊API的導(dǎo)出
SeaJS是一個(gè)遵循 CommonJS 規(guī)范的模塊加載框架,可用來(lái)輕松愉悅地加載任意JavaScript模塊和css模塊樣式。SeaJS接口和方法也非常少,SeaJS 就兩個(gè)核心:模塊定義和模塊的加載及依賴關(guān)系。本文將詳細(xì)介紹模塊的依賴加載及模塊API的導(dǎo)出,有需要的朋友們可以參考借鑒。2016-10-10
 seajs實(shí)現(xiàn)強(qiáng)制刷新本地緩存的方法分析
這篇文章主要介紹了seajs實(shí)現(xiàn)強(qiáng)制刷新本地緩存的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了seajs強(qiáng)制刷新本地緩存的原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-10-10
 Seajs 簡(jiǎn)易文檔 提供簡(jiǎn)單、極致的模塊化開(kāi)發(fā)體驗(yàn)
這篇文章主要介紹了Seajs 簡(jiǎn)易文檔 提供簡(jiǎn)單、極致的模塊化開(kāi)發(fā)體驗(yàn),非官方文檔,整理來(lái)自己官方文檔的文字與實(shí)例,方便速查。需要的朋友可以參考下2016-04-04

