prototype.jsとscript.aculo.usが持つ豊かな機能を実用的なサンプルコードを多用しながら解説します。初心者はライブラリの使い方だけでなく、PHP、Ruby、Ruby on Railsといったサーバサイドの定番技術と組み合わせて使う方法も学ぶことができます。パワーユーザーであればライブラリの設計哲学を学ぶとともに、自分のニーズに合わせてライブラリを拡張する方法や、ライブラリ開発に貢献する方法についての理解を深めることもできるでしょう。prototype.js 1.6、script.aculo.us 1.8対応。
Prototype & script.aculo.us
―JavaScriptライブラリによるAjaxアプリケーション開発
Christophe Porteneuve 著、栗山 淳 監訳、吉田 遼二 訳
- TOPICS
- Programming , Web , JavaScript , PHP , Ruby
- 発行年月日
- 2008年07月
- PRINT LENGTH
- 420
- ISBN
- 978-4-87311-372-2
- 原書
- Prototype and script.aculo.us
- FORMAT
関連ファイル
目次
監訳者まえがき 推薦の言葉 賞賛の声 まえがき I部 Prototype 1章 Prototypeを理解する 1.1 Prototypeとは何であり、何ではないか 1.2 プロジェクトでPrototypeを使う方法 1.2.1 Prototypeの入手方法 1.3 Prototypeを使うとJavaScriptはどう変わるか 1.3.1 簡単なサンプル:名簿データを操作する 1.3.2 ソート機能付きのテーブルをスマートなスクリプトで 1.4 Prototypeの用語と概念 1.4.1 オブジェクト、名前空間、モジュール 1.4.2 イテレータ(反復関数) 1.4.3 拡張要素 1.4.4 別名(エイリアス) 1.5 結局Prototypeって何なの? 1.6 本書のサンプルコードを実行するには 2章 $()関数のクイックヘルプ 2.1 楽をするには短くなくっちゃ 2.2 $()関数で拡張された要素を素早く取得する 2.3 リテラルな配列は面倒なので$w()関数 2.4 $$()関数を使ってスタイルで検索 2.4.1 サポートされるCSSセレクタ 2.5 コレクションを統合する$A()関数 2.6 $F()関数はフィールドの達人 2.7 $H()関数で色々なハッシュを作る 2.8 $R()関数で範囲を扱う 2.9 この章のまとめ 3章 普通のJavaScriptもパワーアップ 3.1 一般的なオブジェクト操作 3.1.1 あらためてfor...in構文を調べてみる 3.1.2 オブジェクトの中身を調べる 3.1.3 オブジェクトのクローニングと拡張 3.1.4 その他 3.2 適切な関数バインディング 3.2.1 引数の事前バインド(結合) 3.3 あなたの関数は本当はもっと有能だ 3.3.1 引数の事前設定(カリー化) 3.3.2 後で実行する 3.3.3 引数をラップして遊ぶ 3.3.4 メソッド化:メソッドのように見える関数を作る 3.4 数値 3.5 文字列 3.5.1 余分な脂肪を取る:strip、stripTags、stripScripts、truncateの各メソッド 3.5.2 変換する:sub、gsub、escapeHTML、unescapeHTML、camelize、capitalize、underscore、dasherize、scan、succの各メソッド 3.5.3 HTMLのエスケープ・アンエスケープ処理 3.5.4 スクリプトの断片:extractScriptsおよびevalScripts 3.5.5 変換および抽出のメソッド:toQueryParams、parseQuery、toArray、inspect 3.5.6 コンテンツを検索する:startsWith、endsWith、include 3.6 配列 3.6.1 配列を列挙する 3.6.2 変換処理:clear、compact、flatten、intersect、reverse、reduce、uniq、without 3.6.3 Array.fromとinspect 3.6.4 抽出:first、last、indexOf 3.6.5 最適化:clone、size、toArray 3.6.6 Operaにおけるconcat 3.7 JSONの全面的サポート 3.7.1 任意のオブジェクトをJSONに変換する 3.7.2 JSON表記をオブジェクトに変換する 3.7.3 JSONとセキュリティ 3.8 この章のまとめ 3.9 頭の体操 3.10 待って、まだまだあるよ! 4章 Enumerableで高度なコレクション 4.1 中心的なメソッド:eachによる反復処理(イテレーション) 4.1.1 列挙を途中で切り上げる 4.1.2 eachはEnumerableのほとんどのメソッドの基礎になる 4.1.3 列挙のコンテキスト 4.2 コレクションについての一般情報 4.3 要素を見つけることと、フィルタを適用すること 4.4 要素のグループ化とコレクションの結合 4.5 派生したコレクションまたは値を計算する 4.5.1 グローバルな値を計算する 4.5.2 各要素を別の形に変換する 4.6 最大値・最小値を取得する、独自基準のソートを使う 4.7 コレクションを配列やデバッグ用文字列に変換する 4.8 Enumerableは実際にはモジュールである 4.8.1 どのようなオブジェクトがEnumerableをミックスインできるか 4.8.2 Enumerableをミックスインする方法 4.8.3 すでにEnumerableを取り込んでいるオブジェクト 4.9 この章のまとめ 4.10 頭の体操 5章 統合されたイベント処理 5.1 イベント 5.1.1 Internet Explorer VS その他の世界 5.1.2 イベントに対する統一されたインターフェイス 5.1.3 イベントを監視する技術 5.1.4 イベント伝播入門 5.1.5 イベントに関する情報を取得する 5.1.6 独自イベントを起動する 5.2 イベントの殿堂 5.2.1 load 5.2.2 submit 5.2.3 click 5.2.4 mousedownとmouseup 5.2.5 mouseover、mousemove、mouseout 5.2.6 keydown、keyup 5.2.7 change 5.3 フォームに関連したコンテンツの変化に反応する 5.3.1 Form.EventObserver 5.3.2 Form.Element.EventObserver 5.4 この章のまとめ 5.5 頭の体操 6章 これでDOMが楽しくなる! 6.1 DOM要素を拡張する 6.1.1 速度のコスト 6.1.2 ネイティブなメソッドがある場合はどうなる? 6.2 開発者のベストフレンドになった要素 6.2.1 メソッドの呼び出し 6.2.2 スタッフマネージャを作る 6.2.3 HTMLページの基礎を作る 6.2.4 スタッフを表すスタッフオブジェクト 6.2.5 DOMを渡り歩く 6.2.6 コンテンツの置換と要素の削除 6.2.7 イベントを処理する 6.2.8 CSSクラス名を調整する 6.2.9 要素の可視性を操作する 6.2.10 新しいコンテンツを挿入する 6.2.11 先祖、子供、兄弟に出会う 6.2.12 CSSを使って要素を選択する 6.2.13 個々のスタイルプロパティを調整する 6.2.14 位置決め 6.2.15 その他のビジュアルメソッド 6.2.16 その他 6.3 セレクタ 6.4 DOM関連のコードをデバッグする 6.4.1 Firebugを使ってみる 6.4.2 DOMインスペクタを使ってみる 6.4.3 デバッグの最後の手段 6.5 この章のまとめ 7章 フォームを操作する 7.1 より良いユーザーインターフェイスを目指して 7.1.1 フォーカスと値の選択をコントロールする 7.1.2 要素の有効/無効の切り替え 7.2 フォームフィールドを調べる 7.3 Ajaxを使ってフォームを送信する 7.3.1 妖怪七変化:フィールド値の変更 7.3.2 フィールドおよびフォーム全体をシリアライズする 7.3.3 フォームのAjax送信を効率化する 7.4 フォームとフィールドを監視する 7.5 この章のまとめ 7.6 頭の体操 8章 Ajaxがこんなに簡単になった 8.1 始める前に…… 8.1.1 知っておくべき技術的制限 8.1.2 初心者のためのXHR速習 8.1.3 レスポンスタイプ:XHTML、XML、JS、JSON、... 8.2 Ajax.Requestを始めてみよう 8.2.1 理解のポイント:ジオメトリ(座標)の保存 8.2.2 すべてのAjaxオブジェクトに共通するオプション 8.2.3 Ajax.Requestにできる他のこと 8.2.4 Ajax.Responseを操作する 8.3 効率を高めるAjax.Updater 8.3.1 理解のポイント:Ajaxによる検索 8.4 ポーリングを行うAjax.PeriodicalUpdater 8.4.1 理解のポイント:リアルタイムのログインリスト 8.4.2 奥の手のトリック 8.5 Ajaxの動作を監視するAjax.Responders 8.6 Ajaxのデバッグ 8.7 Ajaxは有害か? アクセシビリティと人間工学からの考察 8.7.1 JavaScriptを使用しない? ノープロブレム! 8.7.2 人間工学的Ajax:正しいアプローチを取る 8.8 この章のまとめ 8.9 頭の体操 9章 もっと便利なヘルパーオブジェクト 9.1 値をハッシュに保存する 9.1.1 ハッシュを作成する 9.1.2 ハッシュの管理:キーと値を操作する 9.1.3 ハッシュを調べて、別のものに変換する 9.2 なんでも好きなものに範囲を設定する 9.2.1 範囲を作成する 9.2.2 範囲の反復処理(イテレーション) 9.2.3 範囲の包含関係 9.3 再入の危険のない定期的な実行 9.4 テンプレートで楽をする 9.5 現在のブラウザとPrototypeライブラリを調べる 9.5.1 バージョン情報 9.5.2 ブラウザの機能 9.5.3 ブラウザ(Firefox、Safariなど) 9.5.4 現在のビューポートを問い合わせる 9.5.5 定番関数 9.6 この章のまとめ 9.7 頭の体操 10章 パフォーマンス上の注意点 10.1 要素の拡張と$()関数 10.2 イテレータと通常のループ 10.3 旧来のイベントハンドラ 10.4 知っておくべき最近の速度向上 10.5 小さいことはいいことだ 11章 総仕上げ 11.1 作業リストシステムを作る 11.2 基礎作り 11.3 わずか40行のJavaScriptコードで実現 II部 script.aculo.us 12章 script.aculo.usを理解する 12.1 script.aculo.usのモジュール 12.2 script.aculo.usの使い方 13章 視覚的効果 13.1 エフェクトとは何であり、なぜ使わなければならないのか 13.1.1 エフェクトを開始する 13.2 コアエフェクト 13.3 エフェクトに飛び込む 13.3.1 共通のエフェクトオプション 13.3.2 スムーズにやるか元気にやるか:遷移モード 13.4 複合エフェクト 13.4.1 複合エフェクトを起動する 13.4.2 フェードインとフェードアウト 13.4.3 スライドインとスライドアウト 13.4.4 クリエイティブな出入り 13.4.5 注意を引きつけるエフェクト 13.4.6 その他のエフェクト 13.4.7 知っておくべき3つの事柄 13.5 エフェクトキューの潜在能力を引き出す 13.5.1 グローバルなキューを使用する 13.5.2 独自のキュー:さらに先のステップへ 13.6 エフェクトのヘルパー 13.7 自分のエフェクトを作る 13.7.1 エフェクトで何をするのか 13.7.2 エフェクト開発者に役立つヘルパー 13.7.3 サンプル:Effect.Waveの作り方 13.7.4 どこから始めるか 13.8 この章のまとめ 13.9 頭の体操 14章 ドラッグ&ドロップ 14.1 ブロックをあちこちにドラッグする 14.1.1 要素をドラッグ可能にする 14.1.2 ドラッグに反応する:コールバック 14.2 開始と移動と終了を制御する 14.2.1 ドラッグ可能要素の動きを制御する 14.2.2 ドラッグハンドル 14.3 ゴースト化 14.4 ドラッグとスクロール 14.5 ドラッグを監視する 14.6 ドロップする 14.6.1 簡単なドロップゾーン 14.7 ドロップ動作をカスタマイズする 14.7.1 受け入れを制限する 14.7.2 ドラッグに反応する 14.8 ドラッグ&ドロップで並べ替え 14.8.1 並べ替え可能なリストを今すぐ作りたい! 14.8.2 アイテムの順番を取得する 14.8.3 2つのコールバックからの通知を受け取る 14.8.4 Ajaxと組み合わせる 14.8.5 横方向のレイアウトの並べ替え 14.8.6 通常のリスト以外の並べ替え 14.8.7 2つのリストを混ぜ合わせる 14.8.8 Sortableに対してドラッグ&ドロップのオプションを使用する 14.9 注意すべき落とし穴 14.9.1 DOM断片を削除または置換する 14.9.2 Droppablesを正しい順序で作る 14.10 この章のまとめ 14.11 頭の体操 15章 自動補完(オートコンプリート) 15.1 基本事項 15.1.1 組み込みの動作 15.1.2 必ず設定されるオプション 15.2 ローカルな自動補完 15.2.1 ローカルな自動補完をカスタマイズする 15.2.2 補完リストの変更 15.3 Ajaxを利用した方法 15.3.1 インジケータを自動的に表示する 15.3.2 最初のサンプル 15.3.3 リクエストパラメータをカスタマイズする 15.4 選択候補をリッチにマークアップする 15.5 1つのフィールドで複数の値を自動補完する 15.6 コールバックで補完に応答する 15.7 この章のまとめ 15.8 頭の体操 16章 ビルダでDOM断片を組み立てる 16.1 明示的に構築(ビルド)する 16.1.1 簡単なところから:要素が1つだけの場合 16.1.2 要素の中に要素がある場合 16.1.3 メソッドをばらまく:明示的に、しかしもっと短く 16.2 (X)HTML表記を使用する 17章 インプレース編集 17.1 インプレース編集って何? 17.1.1 script.aculo.usがもたらしたもの 17.1.2 インプレース編集の基本手順 17.1.3 コードでインプレース編集を使用する 17.2 簡単なサンプル 17.3 Ajaxの保存プロセスを調整する 17.4 外観をカスタマイズする 17.4.1 ボタンにするか、リンクにするか 17.4.2 テキストを追加する 17.4.3 CSSのクラス、色、その他のスタイルプロパティ 17.4.4 コールバックを使って介入する 17.4.5 外部コントロールを使用する 17.4.6 デフォルトのオプションを変更する 17.5 複数行を扱う 17.6 別形式のテキストを編集する 17.7 インプレース編集を無効にする 17.8 テキストを入力する代わりに値のリストを提供する 17.9 この章のまとめ 17.10 頭の体操 18章 スライダ 18.1 簡単なスライダを作成する 18.2 基本構成をカスタマイズする 18.3 範囲および取り得る値を制限する 18.4 既存のスライダを調整し、コントロールを追加する 18.5 複数の値を指定する 18.6 頭の体操 19章 Flashを使わないサウンド 19.1 必要な環境 19.2 サウンドの再生方法 19.3 複数のトラックで複数のサウンドを再生する 19.3.1 trackオプション 19.3.2 replaceオプション 付録A 拡張と貢献 A.1 クラス、継承、DOM拡張 A.1.1 JavaScriptにおける「クラス」の実体 A.1.2 新しいクラスを定義する A.1.3 別のクラスから継承する A.1.4 インスタンスプロパティとメソッドの追加 A.1.5 静的プロパティとメソッドの追加 A.1.6 あらかじめ定義されたクラスプロパティ A.1.7 DOM要素を拡張する A.2 貢献する A.2.1 最先端をキープする方法:Trac A.2.2 スピンオフの最先端:Subversionリポジトリ 付録B 参考文献 B.1 公式サイト B.2 Prototype Coreメンバーによる有益なブログ B.3 JavaScriptの達人 B.4 Ajaxを取りまくコミュニティと新しいサイト B.5 ECMAScriptに関する最新情報 B.6 参考図書 付録C Rubyのインストールと使用法 C.1 Windowsの場合 C.2 Linuxの場合 C.3 Mac OS Xの場合 C.4 Rubyスクリプトを実行する C.5 でもRubyについてまったく知らないんです 索引