seajsにおけるモジュール依存ロード処理例の解析
1946 ワード
この例では、seajsにおけるモジュール依存のロード処理について説明する.皆さんの参考にしてください.具体的には以下の通りです.
最近、プロジェクトをしているときにモジュール依存に関する問題を発見しました.
たとえば、既存の3つのファイル:
例えばinitを実行する.jsの場合、init.js、jquery.plugA.js、jquery.plugB.jsはjqueryに依存しますが、この場合seajsはjqueryに対してどのように処理しますか?一度だけ実行しますか?何回実行しますか?それとも他の方法ですか?
ここでは玉伯の答えを参考にします.
モジュール呼び出しに対する理解は、呼び出しとは、あるモジュールを取得するインタフェースを指す.SeaJSではseajsしかありません.use, require.async、およびrequireは、モジュール呼び出しを生成します.例えば、
拡張:URIとURLの違い
URI:Uniform Resource Identifiers、統合リソース識別子;
URL:Uniform Resource Loctors、統一リソースロケータ;
URN:Uniform Resource Name,統合リソース名
URL,URNはURIのサブセットである.
リファレンス
Module.STATUSの具体的な意味:https://github.com/seajs/seajs/issues/303URIとURLとURNをはっきり区別するhttp://www.ibm.com/developerworks/cn/xml/x-urlni.html
JavaScriptに関する詳細について興味のある読者は、「JavaScript拡張テクニックまとめ」、「JavaScript文字と文字列操作テクニックまとめ」、「JavaScript数学演算使い方まとめ」、「JavaScriptにおけるjson操作テクニックまとめ」、『JavaScriptエラーとデバッグテクニックまとめ』及び『JavaScriptデータ構造とアルゴリズムテクニックまとめ』
JavaScriptプログラムの設計に役立つことを願っています.
最近、プロジェクトをしているときにモジュール依存に関する問題を発見しました.
たとえば、既存の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 Loctors、統一リソースロケータ;
URN:Uniform Resource Name,統合リソース名
URL,URNはURIのサブセットである.
リファレンス
Module.STATUSの具体的な意味:https://github.com/seajs/seajs/issues/303URIとURLとURNをはっきり区別するhttp://www.ibm.com/developerworks/cn/xml/x-urlni.html
JavaScriptに関する詳細について興味のある読者は、「JavaScript拡張テクニックまとめ」、「JavaScript文字と文字列操作テクニックまとめ」、「JavaScript数学演算使い方まとめ」、「JavaScriptにおけるjson操作テクニックまとめ」、『JavaScriptエラーとデバッグテクニックまとめ』及び『JavaScriptデータ構造とアルゴリズムテクニックまとめ』
JavaScriptプログラムの設計に役立つことを願っています.