Logo

Dojo

Add by Yagi Hiroto | Apr 26, 2012 14:30  1232 |  5
Dojo
Download

Map Outline

Dojo
1 概念
1.1 Base
1.1.1 Dojo Toolkit の中核
1.1.2 基本機能一式
1.1.2.1 DOMへのクエリ
1.1.2.2 DOM操作
1.1.2.3 クロスブラウザAjax
1.1.2.4 イベント処理
1.1.2.5 データAPI
1.1.2.6 など
1.2 Core
1.2.1 Baseに含まれていない関数
1.2.1.1 一般にBaseに含まれるものほど多用されない
1.2.1.2 高度なアニメーション
1.2.1.3 ドラッグ・アンド・ドロップ
1.2.1.4 I/O
1.2.1.5 データ管理
1.2.1.6 国際化対応など
1.3 Dijit
1.3.1 Dojo Toolkit の最も際立った特色の一つ
1.3.2 コンポーネントライブラリ
1.3.2.1 レイアウト
1.3.2.2 メニュー
1.3.2.3 ツリー
1.3.2.4 ダイアログ
1.3.2.5 フォーム
1.3.3 強力なUIを最小限の手間と作業で作成
1.3.4 JavaScriptコンポーネントを宣言型で作成可能
1.3.5 利用方法
1.3.5.1 1.JavaScript によるプログラムで使用
1.3.5.2 2.HTML要素に dojyoType 属性を指定
1.4 DojoX
1.4.1 Base および Dijit に含まれない機能
1.4.2 コミュニティ主導の実験的拡張ライブラリ
2 基本
2.1 ユーティリティ関数
2.1.1 dojo.byId
2.1.1.1 document.getElementByIdの別名
2.1.2 dojo.query
2.1.2.1 CSS3のセレクタを引数にとりオブジェクトを返す
2.1.3 dojo.create
2.1.3.1 新規要素を作成
2.1.4 dojo.body
2.1.4.1 <body>への参照を返す
2.1.5 dojo.empty
2.1.5.1 DOM要素の中身を空に
2.1.6 dojo.destroy
2.1.6.1 ノードと子要素を一緒に除去
2.1.7 dojo.place
2.1.7.1 要素を文書の任意の場所に配置
2.2 配列とNodeList
2.2.1 ヘルパー関数により拡張された配列があり、NodeListと呼ぶ
2.2.2 dojo.query の戻り値はNodeList
2.2.3 NodeListで利用できる関数
2.2.3.1 dojo.forEach
2.2.3.1.1 dojo.forEach(dojo.query(".hoge"),function(item,i){})
2.2.3.2 dojo.indexOf
2.2.3.2.1 特定の値が配列内のどの位置にあるかを調べる
2.2.3.2.1.1 dojo.indexOf(list,"hoge);
2.2.3.3 dojo.filter
2.2.3.3.1 別の配列をフィルタして、新しい配列をつくる
2.2.3.4 dojo.map
2.2.3.4.1 既存の配列を変更して新しい配列をつくる
2.2.3.5 dojo.some
2.2.3.5.1 指定された基準を満たす要素が1つ以上含まれているか
2.2.3.6 dojo.every
2.2.3.6.1 すべての要素が指定された基準を満たすか
2.3 イベント処理
2.3.1 イベントトリガー時に呼ぶ関数をアタッチできる様にクロスブラウザのイベント処理
2.3.1.1 dojo.connect
2.4 トピックのパブリッシュとサブスクライブ
2.4.1 Dojoコンポーネントは互いの存在を意識せずとも相互に対話できる
2.4.1.1 dojo.subscribe
2.4.1.2 dojo.publish
2.5 dojo.xhr*によるAjaxの実現
2.5.1 xhrGet
2.5.2 xhrPost
2.5.3 xhrPut
2.5.4 xhrDelete
2.5.5 引数
2.5.5.1 url
2.5.5.2 handleAs
2.5.5.3 form
2.5.5.4 content
3 オブジェクト指向
3.1 プロトタイプベースのOOP
3.1.1 必要に応じてオブジェクトを宣言
3.1.2 継承が必要な場合、プロトタイプオブジェクトの機能を単純に複製
3.1.3 オブジェクトプロトタイプを実行時に変更できる
3.1.4 クラスベースのOOPをシミュレートした機能を提供
3.1.4.1 dojo.declare
3.1.4.1.1 クラスを作成
3.1.4.1.1.1 dojo.declare("Car",null,{});
3.1.4.1.2 引数
3.1.4.1.2.1 1.クラス名
3.1.4.1.2.2 2.スーパークラス
3.1.4.1.2.3 3.プロパティ、メソッドからなるオブジェクト
3.2 パッケージ化、およびモジュール開発
3.2.1 Dojoクラスのパッケージ化
3.2.1.1 dojo.provide("info.typea.dojo.Car"); dojo.declare("info.typea.dojo.Car",null,{});
3.2.1.2 クラスの完全なパッケージパスを指定
3.2.1.3 dojo.require を使用してクラスをロードするときに、場所を決定するのもパッケージパス
3.2.1.4 上記例は、info/typea/dojo/Car.js に保管されるはず
3.2.2 ビルドシステムを使用して、パッケージ化する
3.2.2.1 クラスをそれぞれのファイルに区別するが、多数の小さなファイルをロードするとパフォーマンスに深刻な影響
3.2.2.2 1つのファイルの方がパフォーマンスは良いが、不要なコードが大量に含まれたり、バージョン管理やコード編成が複雑になってしまう
3.2.2.3 縮小化プロセス
3.2.2.3.1 不要なホワイトスペース、コメントの削除
3.2.2.3.2 ローカル変数を短縮名に変更
3.2.2.3.3 ローカル変数の使い方をリファクタリング
4 Dijit
4.1 最大の特徴は、リッチなインターフェースコンポーネントが揃っている
4.2 DoojoX拡張ライブラリには追加コンポーネントがある
4.3 基本的な使用方法法
4.3.1 1.HTML文書のbody要素にDojoライブラリそのものと、使用するテーマのCSSファイル、テーマへの参照を含める
4.3.2 2.アプリケーションに組み込むDijitコンポーネントをdojo.require 関数でロード
4.3.3 Dijitをインクルードするためには、基本のDojo Toolkit の他に一覧のJavaScriptファイルをインクルードする必要は無い
4.3.4 Dojo のロードシステムを使用して、動的にロード可能
4.3.4.1 Dojoをロードするタグに djConfig="parseOnLoad:true" 属性を追加
4.3.4.1.1 Dojo のHTMLパーサーを使用して、dojoType属性を持つHTML要素を検索するように指示
4.4 コンポーネントの操作
4.4.1 2つの方法
4.4.1.1 1.宣言型で追加
4.4.1.1.1 Dijitの便利な特徴の一つ
4.4.1.1.2 通常のHTML要素を使ってウィジェットを操作できる
4.4.1.2 2.JavaScriptwo使用

More Maps From User