読者です 読者をやめる 読者になる 読者になる

Dojoでちょっとイベントと状態について勉強しようと思ったら。

でもその前に dojo の起動プロセスをソースで確認…。

Download から落とすとインデントとかコメントがすっかり削られるので svn で…。

dojo.js

実行環境を識別して(とりあえずrhino/spidermonkey/Jaxer/ブラウザをみてる)おく。
全環境共通のbootstrap/loaderと、環境ごとの足回りを読み込みリストにつっこんどく。
クロスドメインを使うか設定を見て専用のローダを読み込みリストにつっこんどく。
自分の script タグ見てパスを取得したりして。
_base.js ってのもリストにつっこんどいて。
読み込みリスト各自の script タグを document.write してみて、例外でたら DOM で作ってる。

_base/_loader/bootstrap.js, _base/_loader/loader.js

パッケージ管理とそれに必要な足回り。

_base/_loader/hostenv_browser.js

ブラウザスニッフィング結果など。

_base.js

_base/ 直下の以下の JS をばーっと require して、dojo._base パッケージを提供。

  1. lang
  2. declare(クラス)
  3. connect(抽象イベント)
  4. Deferred(Twisted の Deferred らしい。先日書いたQueueをいきなり捨てたい気持ちになった)
  5. json(文字列<>json
  6. array
  7. Color
  8. browser

_base/browser.js

  1. window
  2. event
  3. html
  4. NodeList
  5. query
  6. xhr
  7. fx

を require。その名の通り。

おわり

あ、おわった。ってことはこれ以上抽象的なものは dojo にはないのかぁ。というわけで勉強終了。Deffered の知見を得た。Dijit でようやってるか見てみよう。