Skip to content

Instantly share code, notes, and snippets.

@msmhrt
Last active December 9, 2015 17:08
Show Gist options
  • Select an option

  • Save msmhrt/4301255 to your computer and use it in GitHub Desktop.

Select an option

Save msmhrt/4301255 to your computer and use it in GitHub Desktop.
Katakana word list for enja-oss/Backbone (2013/01/03)
サーバー(48)、サーバ(25)
データ(27)、データー(2)
トリガー(18)、トリガ(5)
パラメータ(15)、パラメーター(2)
フィルター(1)、フィルタ(1)
プロキシ(8)、プロキシー(2)、プロクシ(1)
ヘッダー(2)、ヘッダ(2)
ヘルパー(2)、ヘルパ(2)
ユーザー(8)、ユーザ(1)
レポジトリ(2)、リポジトリ(1)
### アイディア(1):
File: docs\View.md
BackboneのViewは、コードというよりはほとんど慣習に近い存在です ー ViewはHTMLやCSSについて何も決定付けることはなく、任意のJavaScriptテンプレーティングライブラリと合わせて使用できます。一般的なアイディアとしては、ページを全体を再描画せず、モデルが変更されたときにそれぞれが独立して更新できる、Modelに支えられたロジカルなViewとしてインターフェースを整理します。JSONオブジェクトを掘り、DOMの中にある要素を参照し、手動でHTMLを更新する代わりに、Viewの`render`関数をモデルの`"change"`イベントに結びつけることができます ー そうすると、UIの中のモデルデータを表示しているすべての箇所は、いつでも即座に最新になります。
### アカウント(1):
File: docs\Examples.md
[MetaLab](http://www.metalabdesign.com/)はチーム向けタスク管理アプリの[Flow](http://www.getflow.com/)を作成するためにBackbone.jsを利用しました。ワークスペースはタスクビュー、アクティビティ、アカウント、フォルダ、プロジェクトそしてタグの機能を構築するためにBackbone.jsに依存しています。window.Flow内部で詳細な部分を見ることができます。
### アクティビティ(1):
File: docs\Examples.md
[MetaLab](http://www.metalabdesign.com/)はチーム向けタスク管理アプリの[Flow](http://www.getflow.com/)を作成するためにBackbone.jsを利用しました。ワークスペースはタスクビュー、アクティビティ、アカウント、フォルダ、プロジェクトそしてタグの機能を構築するためにBackbone.jsに依存しています。window.Flow内部で詳細な部分を見ることができます。
### アセットパッケージ(1):
File: docs\View.md
テンプレーティングによる方略がどのようなものであっても結局、JavaScriptでHTML文字列を配置する必要がなければ、それは良いことです。DocumentCloudでは、`core.js`のアセットパッケージの一部として、`/app/views`に格納されたJavaScriptテンプレートをパッケージするのに[Jammit](http://documentcloud.github.com/jammit/)を利用しています。
### アダプター(1):
File: docs\Examples.md
Backboneの例としてリポジトリにバンドルされている[Todo List アプリケーション](examples/todos/index.html)は[Jérôme Gravel-Niquet](http://jgn.me/)が作成したものです。もしBackboneをどこから始めたらいいか迷っている場合は、ひととおり[注釈付きのソース](docs/todos.html)を読む時間をとってみましょう。このアプリケーションではサーバにブラウザ内のすべてのtodoに送らずに、[LocalStorageのアダプター](docs/backbone-localstorage.html)を利用して透過的に保存します。Jérômeは[localtodos.com](http://localtodos.com/)にjQueryの代わりに[MooToolsを利用したバージョン](http://github.com/jeromegn/backbone-mootools)も作成しています。
### アトリビュート(1):
File: docs\Upgrading.md
+ Backbone.jsのバージョンを0.9にアップグレードする場合、Underscore.jsのバージョンもver1.3.1以上を使用するようにしてください。
+ Modelに`{silent: true}`を設定すると、`model.set`はchangeイベントを発火しなくなります。その後、元の値に設定し直されます。同様にアトリビュートをsilentオプションを使って変更した場合にも、次の変更時には`change:attribute`イベントを発火します。
### アドバンテージ(1):
File: docs\View.md
**delegateEvents** を使用することは[render](http://backbonejs.org/#View-render)中に、jQueryを使って手動で子要素にイベントを結びつけることよりも、多くのアドバンテージを提供します。すべてのアタッチされているコールバックは、コールバックが呼び出されたとき、Viewオブジェクトを参照し続けるために、jQueryに引き渡される前にViewに結びつけられています。異なった`events`ハッシュを伴って **delegateEvents** がもう一度実行されるようなときには、すべてのコールバックを削除し、新しく委譲を行います ー 別のモードで異なった動作を必要とする時があるViewにとって有用です。
### アプリケーションロジック(1):
File: docs\FAQ.md
+ アプリケーションロジックがHTMLに依存しません。埋め込みのインラインJavaScriptや、テンプレートロジック、`data-`や`ng-`属性によるバインディングはなく、独自にHTMLタグを発明する必要はありません。
### イテレーション(1):
File: docs\Collection.md
Backboneは28種のイテレーション関数を **Backbone.Collection** に提供する為に **Underscore.js** を代理しています。その全てがこちらにドキュメント化されてはいないですが、詳しくはUnderscoreのドキュメントで調べる事ができます…
### イテレータ(1):
File: docs\Collection.md
コレクション内のそれぞれのモデルから属性を引き抜きます。`map`の呼び出しに相当し、イテレータから単一の属性を返します。
### イベントアプローチ(1):
File: docs\FAQ.md
**ModelとViewをつなぐ参照**は、複数の方法で制御できます。一部の人は、ポインタを直接持たせてViewとModelを1:1にすることを好みます(`model.view` と `view.model`)。他にも、Controllerを設けて、Viewを階層的に作成・編成して、コントロールする方法も好まれます。その他はイベントアプローチを好み、直接メソッドを呼ぶかわりに、常にイベントを発火させてコントロールします。これらのスタイルのすべてがうまく動作します。
### イベントディスパッチャー(1):
File: docs\Events.md
例えば、あなたのアプリケーションの別の領域の間でイベントを協調させる簡単なイベントディスパッチャーを作るにはこのようにします。: `var dispatcher = _.clone(Backbone.Events)`
### イベントリスナ(1):
File: docs\FAQ.md
※訳注:以下のリストの括弧はイベントリスナに与えられる引数です。ModelとCollectionが絡むイベントは、Model -> Collectionの順に、双方でイベントが発火します。
### イベントループ(1):
File: docs\FAQ.md
+ [同期イベント](http://backbonejs.org/#Events)がベースになっていて、難解なイベントループではありません。コンスタントにポーリングして、データ構造を解析して変更を見つけます。もしあなたが望めば、特定のイベントを非同期にして集約することも[問題はありません](http://underscorejs.org/#debounce)。
### インジェクション(1):
File: docs\FAQ.md
あなたは、JavaScriptインジェクション攻撃を防ぐために、JSON文字列内で`</`を[escape](http://mathiasbynens.be/notes/etago)する必要があります。
### イントロダクション(1):
File: docs\Introduction.md
##イントロダクション
### ウィンドウ(1):
File: docs\Model.md
以下のコード例は不自然ではありますが、Modelとカスタムメソッド定義の実例です。ここでは属性値をセットし、その属性値変化のイベントを発火してます。このコードを実行すると、`sidebar`がブラウザのウィンドウに追加されるので、実際にさわってみることができます。
### ウェブ(1):
File: docs\Examples.md
[Disqus](http://www.disqus.com/)はコメント用のウィジェットの最新版のエンジンにBackbone.jsを選択しました。Backboneの容量の小ささと容易な拡張性が、iframeの中にすべてを提供し、そしてIGNやWired、CNN、MLBなどの幾千ものウェブの資産を供給する存在であるDisqusのウェブアプリを配布へするための正しい選択となりました。
### ウェブアプリケーション(1):
File: docs\History.md
**pushState** のサポートは Backbone 内で、純粋にオプトインを基本として存在します。`pushState` をサポートしていない古いブラウザでは、ハッシュベースのURLフラグメントを使い続けますが、もし `pushState` 対応ブラウザでハッシュURLに訪れている場合、それは透過的に本当のURLにアップグレードされます。本当のURL群を使うことで、ウェブサーバは正しくそれらのページをレンダリングできなければならず、そのため、バックエンドの変更も必要になります。例えば、`/documents/100` へのルートがある場合、ブラウザでそのURLに直接訪問したら、ウェブサーバはそのページを提供できなければなりません。サーチエンジンが完全にクロールできるようにするには、サーバに完全なページのHTMLを生成させるのが最善です … が、ウェブアプリケーションの場合は、ルートURL用のものと同じ内容だけをレンダリングし、あとはBackboneのビューと JavaScriptがうまく動いて残りを埋めます。
### ウェブインターフェイス(1):
File: docs\Examples.md
[Hulu](http://hulu.com/)は次世代のオンラインビデオ体験の構築にBackbone.jsを利用しました。Backboneを基盤としてウェブインターフェイスは刷新され、すべてのページのコンテンツはユーザの操作に合わせてスムーズに動的に読み込みを行うようになった。Backboneはスクリプトや埋め込まれたビデオをリロードすることなくアプリの中を移動することを容易にしつつ、追加のデータ操作を行えるよう、モデルとコレクションも提供しています。
### ウェブサイト(1):
File: docs\Examples.md
[USA Today](http://usatoday.com)はBackboneのデータ/モデルのライフサイクルのモジュール性を上手に利用しています。コードを扱いやすく、そして無駄のない形で維持するために、アプリケーションのオブジェクトをシンプルに作り、継承し、分離し、結びつけます。新しいウェブサイトではpushStateに対応したブラウザとレガシーなブラウザへのページ出力制御のためにBackbone Routerが多用されています。最後に、担当チームはBackbone's Eventの利点を用いて、サードパーティー作成のものや解析のパッケージをアプリケーションの心臓部にフックできるようにPubSub APIを作成しました。
### エラーオブジェクト(1):
File: docs\Model.md
### validate `model.validate(attributes)` [原文](http://backbonejs.org/#Model-validate)
このメソッドは未定義ですが、もしJavaScriptで実行可能な検査をお持ちでしたら、ご自身でオーバーライドして独自の検査ロジックを記述することをお勧めします。 **validate** は`set`と`save`が実行される直前に呼び出され、`set`もしくは`save`により更新された属性値が引数として渡されます。もしこれら属性値が正しければ **validate** メソッドは戻り値として何も返さないでください。もし属性値が不正な場合、ご自身で定義したエラー値を返してください。単純にエラーメッセージの文字列を返すだけでもかまいませんし、プログラム的にエラーを記述した完全なエラーオブジェクトを返す事も可能です。もし **validate** がエラーを返した場合、`set`および`save`は続行されず、モデルの属性は変更されません。検査に失敗した場合は`"error"`イベントが発行されます。
### エレメント(1):
File: docs\Introduction.md
Backboneではデータをモデルとして表現します。モデルは生成、評価、破棄することが可能で、さらにサーバに保存できます。UI操作によりモデルの属性が変更された場合、changeイベントが発行されます。イベントはモデルの状態を表示しているすべてのビューに通知され、ビューはそのイベントに反応し、新しい情報を表示するために自身を再描画します。Backboneを使って書かれたアプリでは、DOMの中から特定のidを持つエレメントを検索したり、手動でHTMLを更新したりといった、つなぎのコードは不要です。モデルが変更された際に、ビューは単に自分自身を更新します。
### エンジン(1):
File: docs\Examples.md
[Disqus](http://www.disqus.com/)はコメント用のウィジェットの最新版のエンジンにBackbone.jsを選択しました。Backboneの容量の小ささと容易な拡張性が、iframeの中にすべてを提供し、そしてIGNやWired、CNN、MLBなどの幾千ものウェブの資産を供給する存在であるDisqusのウェブアプリを配布へするための正しい選択となりました。
### オブジェクトグラフ(1):
File: docs\FAQ.md
+ 無数にあるアソシエーションについては、idのかわりに明示的なリストを使用する
+ idを避けて、データセットを表す部分的なオブジェクトグラフを作成し、直接参照を使用する
### オブジェクトモデル(1):
File: docs\FAQ.md
+ HTMLウィジェットについてでもなく、JavaScriptのオブジェクトモデルの再開発についてでもなく、[データの問い合わせや操作に有用なメソッド](http://backbonejs.org/#Collection-Underscore-Methods)を提供することにフォーカスしています。
### オプトイン(1):
File: docs\History.md
**pushState** のサポートは Backbone 内で、純粋にオプトインを基本として存在します。`pushState` をサポートしていない古いブラウザでは、ハッシュベースのURLフラグメントを使い続けますが、もし `pushState` 対応ブラウザでハッシュURLに訪れている場合、それは透過的に本当のURLにアップグレードされます。本当のURL群を使うことで、ウェブサーバは正しくそれらのページをレンダリングできなければならず、そのため、バックエンドの変更も必要になります。例えば、`/documents/100` へのルートがある場合、ブラウザでそのURLに直接訪問したら、ウェブサーバはそのページを提供できなければなりません。サーチエンジンが完全にクロールできるようにするには、サーバに完全なページのHTMLを生成させるのが最善です … が、ウェブアプリケーションの場合は、ルートURL用のものと同じ内容だけをレンダリングし、あとはBackboneのビューと JavaScriptがうまく動いて残りを埋めます。
### オン(1):
File: docs\Sync.md
もしBackbone既定のREST/HTTPアプローチをサポートしていないレガシーなWebサーバ上で作業したい場合、`Backbone.emulateHTTP`をオンにしてください。
### オンラインビデオ(1):
File: docs\Examples.md
[Hulu](http://hulu.com/)は次世代のオンラインビデオ体験の構築にBackbone.jsを利用しました。Backboneを基盤としてウェブインターフェイスは刷新され、すべてのページのコンテンツはユーザの操作に合わせてスムーズに動的に読み込みを行うようになった。Backboneはスクリプトや埋め込まれたビデオをリロードすることなくアプリの中を移動することを容易にしつつ、追加のデータ操作を行えるよう、モデルとコレクションも提供しています。
### オーディオプレーヤー(1):
File: docs\Examples.md
[Pitchfork](http://pitchfork.com/)は、サイト全体のオーディオプレーヤー、[Pitchfork.tv](http://pitchfork.com/tv/)、位置情報のルーティング、ロケーションルーティング、ライトスルーページをキャッシュに分解するなど多くの用途でBackbone.jsを利用しています。Backbone.js(と[Underscore.js](http://underscorejs.org/))は、クリーンでモジュール化されたコンポーネントの制作と迅速な移行、そしてスパゲッティコードではなくサイトの運営に注力することに寄与しています。
### オープンソース(1):
File: docs\Examples.md
[NewsBlur](http://www.newsblur.com/)デスクトップアプリのように高速でレスポンシブルなUIのRSSリーダーとソーシャルニュースネットワークです。Backbone.jsは[大幅な書き換えとスパゲッティコードからの移行](http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/)のために、パワフルでシンプルな機能群、容易な統合性そして大規模なコミュニティを理由として選ばれました。もしあなたがこのあたりの中身をつついてみたい場合、NewsBlurも完全に[オープンソース](http://github.com/samuelclay/NewsBlur)になっています。
### カスタム(1):
File: docs\Collection.md
サーバーからこのコレクション用に規定のモデルをフェッチしてきて、コレクションが生存している場合にリセットします。 **options** ハッシュはそれぞれ`(collection, response, options)`と`(collection, xhr, options)`を引数とした`success`と`error`コールバックを取ります。サーバーからモデルデータが返る際、コレクションは[reset](#Collection-reset)されます。カスタムされた永続化戦略をカバーするのに[Backbone.sync](#Sync)に委譲し、[jqXHR](http://api.jquery.com/jQuery.ajax/#jqXHR)を返します。 **fetch** リクエストを受けたサーバーハンドラはモデルのJSON配列を返します。
### カスタムビュークラス(1):
File: docs\View.md
Viewはまずカスタムビュークラスを作ることから始めます。[render](http://backbonejs.org/#View-render)関数をオーバーライドし、宣言するイベントを指定し、`tagName`や`className`、Viewのルート要素の`id`もおそらく指定するとよいでしょう。
### カスタムメソッド(1):
File: docs\Model.md
以下のコード例は不自然ではありますが、Modelとカスタムメソッド定義の実例です。ここでは属性値をセットし、その属性値変化のイベントを発火してます。このコードを実行すると、`sidebar`がブラウザのウィンドウに追加されるので、実際にさわってみることができます。
### カスタムルータークラス(1):
File: docs\Router.md
カスタムルータークラスを作ることから始めます。特定のURLフラグメントにマッチした場合にトリガーされるアクションを定義し、ルートとアクションのペアの[routes](#Router-routes)ハッシュを提供してください。ルート定義の中で先頭のスラッシュの使用を避けるべきということに注意してください:
### キャプチャ(1):
File: docs\Router.md
手動でルーターのためのルートを作成し、`route`引数には[ルーティング文字列](http://documentcloud.github.com/backbone/#Router-routes)か正規表現を指定することができます。ルート文字列か正規表現からマッチしたそれぞれのキャプチャはコールバックの引数として渡されます。`name`引数はルートがマッチしたときに`route:name`イベントとしてトリガーされます。もし`callback`引数が省略された場合、`router[name]`が代わりに使用されます。
### クライアントサイドコード(1):
File: docs\FAQ.md
一般的にこれから始める人々にとって、このページに記載されている例は、ある種、唯一の真実のように映ります。実際には、Backbone.jsはクライアントサイドコードにおける多くの共通パターンに、大部分で依存していません。例えば...
### クライアントサイドページ(1):
File: docs\Router.md
多くの場合、Webアプリケーションはリンク可能、ブックマーク可能、シェア可能なURLをアプリ内での重要な所在地のために提供します。最近まで、これらの固定リンクを提供するためにハッシュフラグメント(`#page`)が使われていましたが、History APIの出現とともに、標準的なURL(`/page`)を使うことが可能になりました。 **Backbone.Router** はクライアントサイドページのルーティングのためのメソッド、それらを接続するアクションとイベントを提供します。History APIをサポートしていないブラウザでは、Routerは優雅なフォールバックとURLのフラグメントバージョンへの透過的な変換処理をおこないます。
### クライアントサイド・アプリケーション(1):
File: docs\Introduction.md
大量のJavaScriptを含むWebアプリケーションの開発において、まず最初に学ぶ事はデータをDOMに紐付けるのをやめることです。HTMLのUI、JavaScriptのロジック、そしてサーバ上のデータベース、これらの間でデータの同期を取ろうとして、jQueryのセレクタとコールバックが複雑に積み重なったJavaScriptアプリを書いてしまう、というのは非常にやってしまいがちなことですが、リッチなクライアントサイド・アプリケーションにおいては、より構造的なアプローチの方がうまくいく場合が多いのです。
### クラスメソッド(1):
File: docs\FAQ.md
+ Backbone.Model – RailsのModelからクラスメソッドを引いたようなもの。ビジネスロジック内データの1行を内包します。
### クリック(1):
File: docs\Examples.md
[Spin](http://spin.com/)はBackboneのModelsとCollections、それとカスタマイズしたsyncメソッドを利用し、サイト内部のAPIから[新着ニュース](http://www.spin.com/news)を取得しています。他の「ページ」にクリックして遷移したとしても音楽の再生を停止することがないように、Spinはサイト内ナビゲーションでBackboneのRouterを利用しています。
### クリーン(1):
File: docs\Examples.md
[Pitchfork](http://pitchfork.com/)は、サイト全体のオーディオプレーヤー、[Pitchfork.tv](http://pitchfork.com/tv/)、位置情報のルーティング、ロケーションルーティング、ライトスルーページをキャッシュに分解するなど多くの用途でBackbone.jsを利用しています。Backbone.js(と[Underscore.js](http://underscorejs.org/))は、クリーンでモジュール化されたコンポーネントの制作と迅速な移行、そしてスパゲッティコードではなくサイトの運営に注力することに寄与しています。
### クロスサイトスクリプティング(1):
File: docs\Model.md
### escape `model.escape(attribute)` [原文](http://backbonejs.org/#Model-escape)
このメソッドは[get](#Model-get)と似ていますが、HTMLエスケープされた属性値を返すという点で異なります。モデルから得たデータをHTMLに書き込む場合、 **escape** 経由で属性値を取得することで[XSS](http://ja.wikipedia.org/wiki/クロスサイトスクリプティング)攻撃を防ぐことができます。
### クロージャー(1):
File: docs\Examples.md
[Bitbucket](http://www.bitbucket.org/)はGitやMercurialの無料のソースコードホスティングサービスです。モデルとコレクションを通してBackbone.jsが、Bitbucketの[REST API](https://api.bitbucket.org/)はもちろん、新しいコンポーネントであるインラインでのコメントのコーディングやPull Requestの許可などにおいて有用であることを証明しています。
Mustacheテンプレートを用いてサーバーとクライアントサイドのレンダリングを行いつつ、カスタマイズした[Google クロージャー](https://developers.google.com/closure/library/)を用いたウィジェットでBitbucketでは現存するDOMツリーを装飾したり、新しいDOMツリーを挿入するライフサイクルを実現しています。
### クロール(1):
File: docs\History.md
**pushState** のサポートは Backbone 内で、純粋にオプトインを基本として存在します。`pushState` をサポートしていない古いブラウザでは、ハッシュベースのURLフラグメントを使い続けますが、もし `pushState` 対応ブラウザでハッシュURLに訪れている場合、それは透過的に本当のURLにアップグレードされます。本当のURL群を使うことで、ウェブサーバは正しくそれらのページをレンダリングできなければならず、そのため、バックエンドの変更も必要になります。例えば、`/documents/100` へのルートがある場合、ブラウザでそのURLに直接訪問したら、ウェブサーバはそのページを提供できなければなりません。サーチエンジンが完全にクロールできるようにするには、サーバに完全なページのHTMLを生成させるのが最善です … が、ウェブアプリケーションの場合は、ルートURL用のものと同じ内容だけをレンダリングし、あとはBackboneのビューと JavaScriptがうまく動いて残りを埋めます。
### グループワーク(1):
File: README.md
[README](https://github.com/enja-oss/README)レポジトリはenja-ossのトップページです。このレポジトリの[README](https://github.com/enja-oss/README/blob/master/readme.md)や[Issues](https://github.com/enja-oss/README/issues)にて本グループに参加いただく際の注意点などを記載しています。グループワークを円滑に行うために一読してください。
### グローバル(1):
File: docs\History.md
**History** は(フレームごとに)グローバルなルーターとしてサービスを提供し、`hashcange` イベントや `pushState` を処理して、適切なルートに一致させ、コールバックをトリガします。あなたはこれらのうちひとつも自作する必要はなく -- Router を ruoutes とともに使うとき作られる、 `Backbone.history` への参照を使うべきです。
### グローバルレベル(1):
File: docs\Sync.md
この **sync** メソッドは、Backboneのコレクションや個々のモデルに `sync` 関数を追加することによって、
`Backbone.sync` と同じグローバルレベルやもっと細かい粒度でオーバーライドできます。
### コミットハッシュ(1):
File: README.md
翻訳当時の[Backbone.jsのGitHubページ](http://backbonejs.org/)を参考にしています。そのため、その時点の本家[gh-pages](https://github.com/documentcloud/backbone/tree/gh-pages)ブランチから、コミットハッシュのtreeを辿って指定しています。
### コミュニティ(1):
File: docs\Examples.md
[NewsBlur](http://www.newsblur.com/)デスクトップアプリのように高速でレスポンシブルなUIのRSSリーダーとソーシャルニュースネットワークです。Backbone.jsは[大幅な書き換えとスパゲッティコードからの移行](http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/)のために、パワフルでシンプルな機能群、容易な統合性そして大規模なコミュニティを理由として選ばれました。もしあなたがこのあたりの中身をつついてみたい場合、NewsBlurも完全に[オープンソース](http://github.com/samuelclay/NewsBlur)になっています。
### コロン(1):
File: docs\Events.md
**callback** 関数をオブジェクトにバインドします。コールバックは **event** が発火したらいつでも呼び出されます。もし単一ページに多数の別種のイベントがある場合は、それらの名前空間にコロンを使う規定になっています。: `"poll:start"` や `"change:selection"` などです。
### コンスタント(1):
File: docs\FAQ.md
+ [同期イベント](http://backbonejs.org/#Events)がベースになっていて、難解なイベントループではありません。コンスタントにポーリングして、データ構造を解析して変更を見つけます。もしあなたが望めば、特定のイベントを非同期にして集約することも[問題はありません](http://underscorejs.org/#debounce)。
### コンテント(1):
File: docs\View.md
オプションの属性とHTMLコンテントを伴って、与えられた型( **tagName** )のDOM要素を作成するのに便利な関数です。内部的に`view.el`を初期化するのに使用しています。
### コンテントタイプ(1):
File: docs\Sync.md
**Backbone.sync** の既定の動作。
modelを保存する場合、modelの属性値はJSONにシリアライズされてHTTPボディに渡され、コンテントタイプに `application/json` を指定して送信します。
### コントローラー(1):
File: docs\FAQ.md
異なる[Model-View-Controller]([Model–view–controller - Wikipedia, the free encyclopedia](http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller "Model–view–controller - Wikipedia, the free encyclopedia")パターンの実装において、コントローラーの定義について異議を唱える傾向にあります。何かの役に立つのであれば、Backboneは[View](http://backbonejs.org/#View)クラスをControllerのようなものとして考えることができ、UIから発生するイベントをディスパッチしながら、従来のViewのようにHTMLテンプレートも使用します。我々がそれをViewと呼ぶのは、それがUIロジックの単位を示し、単一のDOM要素の内容に責任を持っているからです。
### コンポーネントベースフレームワーク(1):
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### コーディング(1):
File: docs\Examples.md
[Bitbucket](http://www.bitbucket.org/)はGitやMercurialの無料のソースコードホスティングサービスです。モデルとコレクションを通してBackbone.jsが、Bitbucketの[REST API](https://api.bitbucket.org/)はもちろん、新しいコンポーネントであるインラインでのコメントのコーディングやPull Requestの許可などにおいて有用であることを証明しています。
### コールチェーン(1):
File: docs\View.md
デフォルトの実装の **render** は何もしません。ViewのテンプレートをModelのデータからレンダリングし、新しいHTMLで`this.el`を更新するような、独自のコードで上書きします。よい慣習として、コールチェーンを有効にするため **render** の最後で`return this`します。
### サニタイズ(1):
File: docs\View.md
Backboneは、あなたが好むHTMLテンプレーティングの方法にとらわれることなく関知しません。あなたの **render** 関数は、HTML文字列を置換することも、`document.createElement`でDOMツリーを作成することも同様に行うことができます。しかし、我々は素晴らしいJavaScriptテンプレーティングライブラリを選ぶことをおすすめします。[Mustache.js](http://github.com/janl/mustache.js)や[Haml-js](http://github.com/creationix/haml-js)、そして[Eco](http://github.com/sstephenson/eco)、これらはすべて良い代替手段と言えます。そのように言うのも、ページには[Underscore.js](http://documentcloud.github.com/underscore/)が既にあるため[_.template](http://documentcloud.github.com/underscore/#template)を利用することができ、XSS対策のサニタイズが済んだデータを挿入する場合は、素晴らしい選択になるからです。
### サーチエンジン(1):
File: docs\History.md
**pushState** のサポートは Backbone 内で、純粋にオプトインを基本として存在します。`pushState` をサポートしていない古いブラウザでは、ハッシュベースのURLフラグメントを使い続けますが、もし `pushState` 対応ブラウザでハッシュURLに訪れている場合、それは透過的に本当のURLにアップグレードされます。本当のURL群を使うことで、ウェブサーバは正しくそれらのページをレンダリングできなければならず、そのため、バックエンドの変更も必要になります。例えば、`/documents/100` へのルートがある場合、ブラウザでそのURLに直接訪問したら、ウェブサーバはそのページを提供できなければなりません。サーチエンジンが完全にクロールできるようにするには、サーバに完全なページのHTMLを生成させるのが最善です … が、ウェブアプリケーションの場合は、ルートURL用のものと同じ内容だけをレンダリングし、あとはBackboneのビューと JavaScriptがうまく動いて残りを埋めます。
### サードパーティー(1):
File: docs\Examples.md
[USA Today](http://usatoday.com)はBackboneのデータ/モデルのライフサイクルのモジュール性を上手に利用しています。コードを扱いやすく、そして無駄のない形で維持するために、アプリケーションのオブジェクトをシンプルに作り、継承し、分離し、結びつけます。新しいウェブサイトではpushStateに対応したブラウザとレガシーなブラウザへのページ出力制御のためにBackbone Routerが多用されています。最後に、担当チームはBackbone's Eventの利点を用いて、サードパーティー作成のものや解析のパッケージをアプリケーションの心臓部にフックできるようにPubSub APIを作成しました。
### サーバーハンドラ(1):
File: docs\Collection.md
サーバーからこのコレクション用に規定のモデルをフェッチしてきて、コレクションが生存している場合にリセットします。 **options** ハッシュはそれぞれ`(collection, response, options)`と`(collection, xhr, options)`を引数とした`success`と`error`コールバックを取ります。サーバーからモデルデータが返る際、コレクションは[reset](#Collection-reset)されます。カスタムされた永続化戦略をカバーするのに[Backbone.sync](#Sync)に委譲し、[jqXHR](http://api.jquery.com/jQuery.ajax/#jqXHR)を返します。 **fetch** リクエストを受けたサーバーハンドラはモデルのJSON配列を返します。
### シェア(1):
File: docs\Router.md
多くの場合、Webアプリケーションはリンク可能、ブックマーク可能、シェア可能なURLをアプリ内での重要な所在地のために提供します。最近まで、これらの固定リンクを提供するためにハッシュフラグメント(`#page`)が使われていましたが、History APIの出現とともに、標準的なURL(`/page`)を使うことが可能になりました。 **Backbone.Router** はクライアントサイドページのルーティングのためのメソッド、それらを接続するアクションとイベントを提供します。History APIをサポートしていないブラウザでは、Routerは優雅なフォールバックとURLのフラグメントバージョンへの透過的な変換処理をおこないます。
### システム(1):
File: docs\Examples.md
[WordPress.com](http://wordpress.com/)は[WordPress](http://wordpress.org/)のWebサービスとしてのバージョンです。Backbone.jsのModels、Collections、Viewsをその[通知システム](http://en.blog.wordpress.com/2012/05/25/notifications-refreshed/)で利用しています。Backbone.jsはアプリケーションの構造に容易にフィットする唯一の選択肢として採用されました。[Automattic社](http://automattic.com/)の統計情報タブとホームページ全体の機能をBackbone.jsに統合しています。
### ショッピング(1):
File: docs\Examples.md
[Gilt Groupe](http://gilt.com/)はBackbone.jsを利用し、関連サイトを含む複数のアプリケーションの構築を行いました。[Giltの モバイルサイト](http://m.gilt.com/)では、Backboneと[Zepto.js](http://zeptojs.com/)を用いて、出先のユーザーに対して、超高速なショッピング体験を提供していて、[Gilt Live](http://live.gilt.com/)では顧客がリアルタイムに購入している商品をBackboneとWebSocketsを結合して表示しています。Giltの検索機能もBackboneを用いて、フィルターや商品の並び替えをクライアントサイドで行うことで効率的に行えるようにしています。
### シームレス(1):
File: docs\Examples.md
[Do](http://do.com/)はタスクの消化やプロジェクトの管理を簡単にする、ソーシャルなプロダクティビティアプリです。[Do.com](http://do.com/)のウェブアプリはスマートフォン、タブレット、PCでシームレスに動作するようにゼロから構築されました。製作チームはBackboneと[CoffeeScript](http://coffeescript.org/)や[Handlebars](http://handlebarsjs.com/)を記録的な短時間で構築し、複雑なナビゲーションとモデルの同期を行うための独自拡張を実現するために利用しました。
### シーン(1):
File: docs\FAQ.md
もしあなたが上に示した[examplesリスト](http://documentcloud.github.com/backbone/#examples)を見て、適合するシーンをまだ掴み切れていないのであれば、より具体的に述べることができます。Backbone.jsは細心の注意を払いながら、より良い実装のために確実で判断したほうがよいことに勝手な答えを出さず、野心的なインターフェースを備えたデータリッチなWebアプリケーションが必要とする共通基盤を提供することを目的としています。
### スキップ(1):
File: docs\Model.md
モデルが[validate](#Model-validate)メソッドを持つ場合、属性値がセットされる前に検査が実行されます。もし検査に失敗すれば何も変更されず、 **set** は`false`を返します。検査に成功すれば、 **set** はモデルへの参照を返します。オプション引数に`error`コールバック関数を渡す事もできます。その場合、検査に失敗すれば`"error"`イベントが発行される代わりにコールバック関数が呼ばれます。オプション引数に`{silent: true}`を指定することで、検査をスキップすることができます。
### スクリプト(1):
File: docs\Examples.md
[Hulu](http://hulu.com/)は次世代のオンラインビデオ体験の構築にBackbone.jsを利用しました。Backboneを基盤としてウェブインターフェイスは刷新され、すべてのページのコンテンツはユーザの操作に合わせてスムーズに動的に読み込みを行うようになった。Backboneはスクリプトや埋め込まれたビデオをリロードすることなくアプリの中を移動することを容易にしつつ、追加のデータ操作を行えるよう、モデルとコレクションも提供しています。
### スケーリング(1):
File: docs\FAQ.md
+ Backboneはスケーリングに優れ、[埋め込みウィジェット](http://disqus.com/)から[大規模なアプリ](http://www.usatoday.com/)まで対応できます。
### スタートアップ(1):
File: docs\Examples.md
Foursquareは友達と会ったり、新しいスポットを見つけたり、お金を節約できる楽しくて小さなスタートアップ企業です。Backbone Modelsは[トップページのマップ](https://foursquare.com/)や[リスト](https://foursquare.com/seriouseats/list/the-best-doughnuts-in-ny)のような非常に利用頻度の高い機能を供給するコアとなるJavaScirpt APIレイヤーとViewsで多く用いられています。
### スニペット(1):
File: docs\FAQ.md
**UIの描画**はあなたが望むように行われます。Backboneは`render`関数の中で、[Underscore templates](http://documentcloud.github.com/underscore/#template)や[Mustache.js](https://github.com/janl/mustache.js)、直接的なDOM操作、サーバーサイドで作ったHTMLスニペット、jQuery UIなどのいずれが使用されることを問いません。時にはModelごとのViewを作成するでしょうし、時にはタイトなループの中で多数のModelを一度に描画するViewを作成することもあるでしょう。同じアプリの中であっても、関係するデータの量や、UIの複雑さに応じてどちらの方法でも適切になりえます。
### スポット(1):
File: docs\Examples.md
Foursquareは友達と会ったり、新しいスポットを見つけたり、お金を節約できる楽しくて小さなスタートアップ企業です。Backbone Modelsは[トップページのマップ](https://foursquare.com/)や[リスト](https://foursquare.com/seriouseats/list/the-best-doughnuts-in-ny)のような非常に利用頻度の高い機能を供給するコアとなるJavaScirpt APIレイヤーとViewsで多く用いられています。
### スマートフォン(1):
File: docs\Examples.md
[Do](http://do.com/)はタスクの消化やプロジェクトの管理を簡単にする、ソーシャルなプロダクティビティアプリです。[Do.com](http://do.com/)のウェブアプリはスマートフォン、タブレット、PCでシームレスに動作するようにゼロから構築されました。製作チームはBackboneと[CoffeeScript](http://coffeescript.org/)や[Handlebars](http://handlebarsjs.com/)を記録的な短時間で構築し、複雑なナビゲーションとモデルの同期を行うための独自拡張を実現するために利用しました。
### スムーズ(1):
File: docs\Examples.md
[Hulu](http://hulu.com/)は次世代のオンラインビデオ体験の構築にBackbone.jsを利用しました。Backboneを基盤としてウェブインターフェイスは刷新され、すべてのページのコンテンツはユーザの操作に合わせてスムーズに動的に読み込みを行うようになった。Backboneはスクリプトや埋め込まれたビデオをリロードすることなくアプリの中を移動することを容易にしつつ、追加のデータ操作を行えるよう、モデルとコレクションも提供しています。
### ゼロ(1):
File: docs\Examples.md
[Do](http://do.com/)はタスクの消化やプロジェクトの管理を簡単にする、ソーシャルなプロダクティビティアプリです。[Do.com](http://do.com/)のウェブアプリはスマートフォン、タブレット、PCでシームレスに動作するようにゼロから構築されました。製作チームはBackboneと[CoffeeScript](http://coffeescript.org/)や[Handlebars](http://handlebarsjs.com/)を記録的な短時間で構築し、複雑なナビゲーションとモデルの同期を行うための独自拡張を実現するために利用しました。
### ソーシャル(1):
File: docs\Examples.md
[Do](http://do.com/)はタスクの消化やプロジェクトの管理を簡単にする、ソーシャルなプロダクティビティアプリです。[Do.com](http://do.com/)のウェブアプリはスマートフォン、タブレット、PCでシームレスに動作するようにゼロから構築されました。製作チームはBackboneと[CoffeeScript](http://coffeescript.org/)や[Handlebars](http://handlebarsjs.com/)を記録的な短時間で構築し、複雑なナビゲーションとモデルの同期を行うための独自拡張を実現するために利用しました。
### ソーシャルニュースネットワーク(1):
File: docs\Examples.md
[NewsBlur](http://www.newsblur.com/)デスクトップアプリのように高速でレスポンシブルなUIのRSSリーダーとソーシャルニュースネットワークです。Backbone.jsは[大幅な書き換えとスパゲッティコードからの移行](http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/)のために、パワフルでシンプルな機能群、容易な統合性そして大規模なコミュニティを理由として選ばれました。もしあなたがこのあたりの中身をつついてみたい場合、NewsBlurも完全に[オープンソース](http://github.com/samuelclay/NewsBlur)になっています。
### ソースコードホスティングサービス(1):
File: docs\Examples.md
[Bitbucket](http://www.bitbucket.org/)はGitやMercurialの無料のソースコードホスティングサービスです。モデルとコレクションを通してBackbone.jsが、Bitbucketの[REST API](https://api.bitbucket.org/)はもちろん、新しいコンポーネントであるインラインでのコメントのコーディングやPull Requestの許可などにおいて有用であることを証明しています。
### タイト(1):
File: docs\FAQ.md
**UIの描画**はあなたが望むように行われます。Backboneは`render`関数の中で、[Underscore templates](http://documentcloud.github.com/underscore/#template)や[Mustache.js](https://github.com/janl/mustache.js)、直接的なDOM操作、サーバーサイドで作ったHTMLスニペット、jQuery UIなどのいずれが使用されることを問いません。時にはModelごとのViewを作成するでしょうし、時にはタイトなループの中で多数のModelを一度に描画するViewを作成することもあるでしょう。同じアプリの中であっても、関係するデータの量や、UIの複雑さに応じてどちらの方法でも適切になりえます。
### タスクビュー(1):
File: docs\Examples.md
[MetaLab](http://www.metalabdesign.com/)はチーム向けタスク管理アプリの[Flow](http://www.getflow.com/)を作成するためにBackbone.jsを利用しました。ワークスペースはタスクビュー、アクティビティ、アカウント、フォルダ、プロジェクトそしてタグの機能を構築するためにBackbone.jsに依存しています。window.Flow内部で詳細な部分を見ることができます。
### タブ(1):
File: docs\Examples.md
[WordPress.com](http://wordpress.com/)は[WordPress](http://wordpress.org/)のWebサービスとしてのバージョンです。Backbone.jsのModels、Collections、Viewsをその[通知システム](http://en.blog.wordpress.com/2012/05/25/notifications-refreshed/)で利用しています。Backbone.jsはアプリケーションの構造に容易にフィットする唯一の選択肢として採用されました。[Automattic社](http://automattic.com/)の統計情報タブとホームページ全体の機能をBackbone.jsに統合しています。
### タブレット(1):
File: docs\Examples.md
[Do](http://do.com/)はタスクの消化やプロジェクトの管理を簡単にする、ソーシャルなプロダクティビティアプリです。[Do.com](http://do.com/)のウェブアプリはスマートフォン、タブレット、PCでシームレスに動作するようにゼロから構築されました。製作チームはBackboneと[CoffeeScript](http://coffeescript.org/)や[Handlebars](http://handlebarsjs.com/)を記録的な短時間で構築し、複雑なナビゲーションとモデルの同期を行うための独自拡張を実現するために利用しました。
### ダウンロード(1):
File: docs\FAQ.md
+ より小さいライブラリです。この軽量さはダウンロードのためであるし、把握すべき概念が広大でないことも示しています。あなたは午後いっぱいソースコードを読めば、これらを理解することができます。
### チェンジセット(1):
File: docs\FAQ.md
**バッチ操作**はモデルにおいて一般的ですが、多くの場合はサーバーサイドの設計によって異なった制御を行うほうが理想的です。一部の人々はAjaxリクエストを個々に記述することを惜しみません。あるいは、`/notes/batch/destroy?ids=1,2,3,4` のようなRESTfulなバッチ操作のための明示的なリソースを作成します。他にも、JSONをトンネルにすることでRESTを実現し、次のようなチェンジセットとしてリクエストを作成することもあります。
### チャプター(1):
File: docs\Collection.md
この例の全てのチャプターを逆方向に追加したとしても、正しい順序に来る事に注意してください。
### テキスト(1):
File: docs\Model.md
**save** はオプションとして`sucess`および`error`コールバックを受け取ります。それぞれのコールバックの引数は順に`(model, response, options)`および`(model, xhr, options)`となります。モデルが`validate`メソッドを持っていて、検査に失敗したときにも`error`コールバックが呼ばれます。サーバ側で失敗した場合は、`200`以外のHTTPレスポンスコードとともに、エラーがテキストもしくはJSONの形式で返却されます。
### テンプレートエンジン(1):
File: docs\FAQ.md
+ Backboneはあなたに特定のテンプレートエンジンを使うことを強制しません。Viewは[あなた](http://underscorejs.org/#template)の[好き](http://guides.rubyonrails.org/layouts_and_rendering.html)な[方法](http://mustache.github.com/)でHTMLを構築できます。
### テンプレートロジック(1):
File: docs\FAQ.md
+ アプリケーションロジックがHTMLに依存しません。埋め込みのインラインJavaScriptや、テンプレートロジック、`data-`や`ng-`属性によるバインディングはなく、独自にHTMLタグを発明する必要はありません。
### デザイン(1):
File: docs\FAQ.md
**自由に独自イベントを定義できます**。[Backbone.Events](http://backbonejs.org/#Events)は、あらゆるobjectやprototypeと混ぜ合わせて使えるようにデザインされています。独自のカスタムイベントをbindまたはtriggerするのに、`model.on("selected:true")` や `model.on("editing")`のように任意の文字列をイベント名として使用できます。
### デスクトップアプリ(1):
File: docs\Examples.md
[NewsBlur](http://www.newsblur.com/)デスクトップアプリのように高速でレスポンシブルなUIのRSSリーダーとソーシャルニュースネットワークです。Backbone.jsは[大幅な書き換えとスパゲッティコードからの移行](http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/)のために、パワフルでシンプルな機能群、容易な統合性そして大規模なコミュニティを理由として選ばれました。もしあなたがこのあたりの中身をつついてみたい場合、NewsBlurも完全に[オープンソース](http://github.com/samuelclay/NewsBlur)になっています。
### デスクトップアプリケーション(1):
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### デモ(1):
File: docs\FAQ.md
+ 2way-bindingを敢えて備えていません。それは確かに、気の利いたデモができて、基本的なCRUD操作として動きますが、あなたのアプリケーションにおいて劇的に便利に使えることは現実的にありません。ときには`keypress`のたびにアップデートしたいでしょうし、`blur`のときにしたい、パネルを閉じたときにしたい、保存ボタンが押されたときにしたいと様々です。ほとんどのケースにおいて、フォームのデータをJSONに単純にシリアライズすることが速くて簡単です。さておき、使う用途がはっきりしているのであれば、[使えば](http://rivetsjs.com/)よい[でしょう](http://nytimes.github.com/backbone.stickit/)。
### データセット(1):
File: docs\FAQ.md
+ 無数にあるアソシエーションについては、idのかわりに明示的なリストを使用する
+ idを避けて、データセットを表す部分的なオブジェクトグラフを作成し、直接参照を使用する
### データリッチ(1):
File: docs\FAQ.md
もしあなたが上に示した[examplesリスト](http://documentcloud.github.com/backbone/#examples)を見て、適合するシーンをまだ掴み切れていないのであれば、より具体的に述べることができます。Backbone.jsは細心の注意を払いながら、より良い実装のために確実で判断したほうがよいことに勝手な答えを出さず、野心的なインターフェースを備えたデータリッチなWebアプリケーションが必要とする共通基盤を提供することを目的としています。
### データレイヤー(1):
File: docs\Model.md
### save `model.save([attributes], [options])` [原文](http://backbonejs.org/#Model-save)
モデルをデータベース(もしくは他の永続データレイヤー)に保存します。処理は[Backbone.sync](#Sync)へ委譲されます。検査に成功した場合は[jqXHR](http://api.jquery.com/jQuery.ajax/#jqXHR)オブジェクトを返し、それ以外は`false`を返します。引数の **attributes** ハッシュは、([set](#Model-set)と同様)変更対象の属性を含みます。ここに含まれていないキーは変更の対象になりませんが、サーバへは完全なリソースが送られます。`set`と同様、ハッシュの代わりにキーと値を別々に引数として渡す事も可能です。もしモデルが[validate](#Model-validate)メソッドを持っており、検査に失敗した場合、モデルは保存されません。もしモデルが[isNew](#Model-isNew)でtrueを返す場合、saveメソッドは`"create"`(HTTP `POST`)となり、もしモデルがサーバにすでに存在している場合、`"update"`(HTTP `PUT`)となります。
### トグル(1):
File: docs\Collection.md
**fetch** はページロードのコレクションに使用するべきでは無いというのは注意点です。&mdash;全てのモデルはロードされた時点でその場で[bootstrap](#FAQ-bootstrap)する必要があるからです。 **fetch** は即時性が必要のないインターフェースのためのレイジーロードモデル用に用意されています。:例としてトグルで開閉するノートのコレクションがあるドキュメントなどです。
### トンネル(1):
File: docs\FAQ.md
**バッチ操作**はモデルにおいて一般的ですが、多くの場合はサーバーサイドの設計によって異なった制御を行うほうが理想的です。一部の人々はAjaxリクエストを個々に記述することを惜しみません。あるいは、`/notes/batch/destroy?ids=1,2,3,4` のようなRESTfulなバッチ操作のための明示的なリソースを作成します。他にも、JSONをトンネルにすることでRESTを実現し、次のようなチェンジセットとしてリクエストを作成することもあります。
### ニュース(1):
File: docs\Examples.md
[Spin](http://spin.com/)はBackboneのModelsとCollections、それとカスタマイズしたsyncメソッドを利用し、サイト内部のAPIから[新着ニュース](http://www.spin.com/news)を取得しています。他の「ページ」にクリックして遷移したとしても音楽の再生を停止することがないように、Spinはサイト内ナビゲーションでBackboneのRouterを利用しています。
### ノート(1):
File: docs\Collection.md
**fetch** はページロードのコレクションに使用するべきでは無いというのは注意点です。&mdash;全てのモデルはロードされた時点でその場で[bootstrap](#FAQ-bootstrap)する必要があるからです。 **fetch** は即時性が必要のないインターフェースのためのレイジーロードモデル用に用意されています。:例としてトグルで開閉するノートのコレクションがあるドキュメントなどです。
### ハッシュフラグメント(1):
File: docs\Router.md
多くの場合、Webアプリケーションはリンク可能、ブックマーク可能、シェア可能なURLをアプリ内での重要な所在地のために提供します。最近まで、これらの固定リンクを提供するためにハッシュフラグメント(`#page`)が使われていましたが、History APIの出現とともに、標準的なURL(`/page`)を使うことが可能になりました。 **Backbone.Router** はクライアントサイドページのルーティングのためのメソッド、それらを接続するアクションとイベントを提供します。History APIをサポートしていないブラウザでは、Routerは優雅なフォールバックとURLのフラグメントバージョンへの透過的な変換処理をおこないます。
### ハンドラ(1):
File: docs\Sync.md
例として、`Backbone` から呼び出す `"update"` へのRailsの応答ハンドラはこのようになります。
### バインディング(1):
File: docs\FAQ.md
+ アプリケーションロジックがHTMLに依存しません。埋め込みのインラインJavaScriptや、テンプレートロジック、`data-`や`ng-`属性によるバインディングはなく、独自にHTMLタグを発明する必要はありません。
### バリデーションエラー(1):
File: docs\Collection.md
コレクションに新しいモデルのインスタンスを作るのに便利なものです。属性のハッシュをともなったモデルのインスタンス化と同じもので、モデルをサーバーに保存し、作成に成功した後にモデルを追加します。モデルを返すか、モデルの作成時にバリデーションエラーで妨げられた時に`false`を返します。これを動作させる為に、[model](#Collection-model)プロパティを設定する必要があります。 **create** メソッドは属性のハッシュか、存在すれば保存されていないモデルオブジェクトのどちらも受け入れます。
### バンドル(1):
File: docs\Examples.md
Backboneの例としてリポジトリにバンドルされている[Todo List アプリケーション](examples/todos/index.html)は[Jérôme Gravel-Niquet](http://jgn.me/)が作成したものです。もしBackboneをどこから始めたらいいか迷っている場合は、ひととおり[注釈付きのソース](docs/todos.html)を読む時間をとってみましょう。このアプリケーションではサーバにブラウザ内のすべてのtodoに送らずに、[LocalStorageのアダプター](docs/backbone-localstorage.html)を利用して透過的に保存します。Jérômeは[localtodos.com](http://localtodos.com/)にjQueryの代わりに[MooToolsを利用したバージョン](http://github.com/jeromegn/backbone-mootools)も作成しています。
### パス(1):
File: docs\FAQ.md
+ `error` (model, collection) — Modelのバリデーションに違反したときや、サーバーとの通信に失敗(error)したとき
+ `route:[name]` (router) — Routerの特定のメソッドにルーティング(route)されたとき(※訳注:nameはルーティングの元になったパスではなく、ルーティング先のメソッド名であり、そのメソッドが実行されたあとに発火することに注意)
### パネル(1):
File: docs\FAQ.md
+ 2way-bindingを敢えて備えていません。それは確かに、気の利いたデモができて、基本的なCRUD操作として動きますが、あなたのアプリケーションにおいて劇的に便利に使えることは現実的にありません。ときには`keypress`のたびにアップデートしたいでしょうし、`blur`のときにしたい、パネルを閉じたときにしたい、保存ボタンが押されたときにしたいと様々です。ほとんどのケースにおいて、フォームのデータをJSONに単純にシリアライズすることが速くて簡単です。さておき、使う用途がはっきりしているのであれば、[使えば](http://rivetsjs.com/)よい[でしょう](http://nytimes.github.com/backbone.stickit/)。
### パワフル(1):
File: docs\Examples.md
[NewsBlur](http://www.newsblur.com/)デスクトップアプリのように高速でレスポンシブルなUIのRSSリーダーとソーシャルニュースネットワークです。Backbone.jsは[大幅な書き換えとスパゲッティコードからの移行](http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/)のために、パワフルでシンプルな機能群、容易な統合性そして大規模なコミュニティを理由として選ばれました。もしあなたがこのあたりの中身をつついてみたい場合、NewsBlurも完全に[オープンソース](http://github.com/samuelclay/NewsBlur)になっています。
### ヒント(1):
File: docs\Sync.md
Railsと統合するためのもうひとつのヒントは、モデルからの `to_jsonは` 呼び出しについて
### ビジネスロジック(1):
File: docs\FAQ.md
+ Backbone.Model – RailsのModelからクラスメソッドを引いたようなもの。ビジネスロジック内データの1行を内包します。
### ビジュアライゼーション(1):
File: docs\FAQ.md
+ Backboneはライブラリであって、フレームワークではないので、他のライブラリと併用しやすいです。DojoアプリにBackboneウィジェットを埋め込むことは難なくできますし、d3を利用したビジュアライゼーションのデータ管理にもBackboneのModelを利用できます。(ここに挙げているのはランダムな2つの例です)
### フィット(1):
File: docs\Examples.md
[WordPress.com](http://wordpress.com/)は[WordPress](http://wordpress.org/)のWebサービスとしてのバージョンです。Backbone.jsのModels、Collections、Viewsをその[通知システム](http://en.blog.wordpress.com/2012/05/25/notifications-refreshed/)で利用しています。Backbone.jsはアプリケーションの構造に容易にフィットする唯一の選択肢として採用されました。[Automattic社](http://automattic.com/)の統計情報タブとホームページ全体の機能をBackbone.jsに統合しています。
### フィルタ(1): フィルター(1)
File: docs\FAQ.md
のように設定します。それ以外の場合は、[parse](http://backbonejs.org/#Model-parse)をオーバーライドして、Model名のラッパーを取り除いてModelの値を取り出してやります。同様に、BackboneのPUTとPOSTにおいてModelをJSONで表現するときも、RailsはデフォルトでModel名がrootに含まれることを期待します。Controllerで`params`から直接的に値をフィルタすることができ、もしくはBackboneの[toJSON](http://backbonejs.org/#Model-toJSON)を上書きしてRailsが期待するようになるようrootにModel名を追加します。
### フィルタリング(1):
File: docs\FAQ.md
+ Backbone.Model – RailsのModelからクラスメソッドを引いたようなもの。ビジネスロジック内データの1行を内包します。
+ Backbone.Collection – クライアントサイドにおけるModelのグループ。並び替え(sort)・フィルタリング(filtering)・集約(aggregation)のロジックを持つ。
### フィルター(1): フィルタ(1)
File: docs\Examples.md
[Gilt Groupe](http://gilt.com/)はBackbone.jsを利用し、関連サイトを含む複数のアプリケーションの構築を行いました。[Giltの モバイルサイト](http://m.gilt.com/)では、Backboneと[Zepto.js](http://zeptojs.com/)を用いて、出先のユーザーに対して、超高速なショッピング体験を提供していて、[Gilt Live](http://live.gilt.com/)では顧客がリアルタイムに購入している商品をBackboneとWebSocketsを結合して表示しています。Giltの検索機能もBackboneを用いて、フィルターや商品の並び替えをクライアントサイドで行うことで効率的に行えるようにしています。
### フォルダ(1):
File: docs\Examples.md
[MetaLab](http://www.metalabdesign.com/)はチーム向けタスク管理アプリの[Flow](http://www.getflow.com/)を作成するためにBackbone.jsを利用しました。ワークスペースはタスクビュー、アクティビティ、アカウント、フォルダ、プロジェクトそしてタグの機能を構築するためにBackbone.jsに依存しています。window.Flow内部で詳細な部分を見ることができます。
### フォーカス(1):
File: docs\FAQ.md
+ HTMLウィジェットについてでもなく、JavaScriptのオブジェクトモデルの再開発についてでもなく、[データの問い合わせや操作に有用なメソッド](http://backbonejs.org/#Collection-Underscore-Methods)を提供することにフォーカスしています。
### フック(1):
File: docs\Examples.md
[USA Today](http://usatoday.com)はBackboneのデータ/モデルのライフサイクルのモジュール性を上手に利用しています。コードを扱いやすく、そして無駄のない形で維持するために、アプリケーションのオブジェクトをシンプルに作り、継承し、分離し、結びつけます。新しいウェブサイトではpushStateに対応したブラウザとレガシーなブラウザへのページ出力制御のためにBackbone Routerが多用されています。最後に、担当チームはBackbone's Eventの利点を用いて、サードパーティー作成のものや解析のパッケージをアプリケーションの心臓部にフックできるようにPubSub APIを作成しました。
### フラグメントバージョン(1):
File: docs\Router.md
多くの場合、Webアプリケーションはリンク可能、ブックマーク可能、シェア可能なURLをアプリ内での重要な所在地のために提供します。最近まで、これらの固定リンクを提供するためにハッシュフラグメント(`#page`)が使われていましたが、History APIの出現とともに、標準的なURL(`/page`)を使うことが可能になりました。 **Backbone.Router** はクライアントサイドページのルーティングのためのメソッド、それらを接続するアクションとイベントを提供します。History APIをサポートしていないブラウザでは、Routerは優雅なフォールバックとURLのフラグメントバージョンへの透過的な変換処理をおこないます。
### フレーム(1):
File: docs\History.md
**History** は(フレームごとに)グローバルなルーターとしてサービスを提供し、`hashcange` イベントや `pushState` を処理して、適切なルートに一致させ、コールバックをトリガします。あなたはこれらのうちひとつも自作する必要はなく -- Router を ruoutes とともに使うとき作られる、 `Backbone.history` への参照を使うべきです。
### フロントエンド(1):
File: docs\Examples.md
[Khan Academy](http://www.khanacademy.org/)はあらゆる人々に世界レベルの教育を提供しようというひとつの試みです。数千のビデオ、数百のJavaScriptで動く演習問題、そして未来に向けた壮大な計画のために、Khan AcademyはBackboneを利用してフロントエンドのコードのモジュール化と最適化を実現しています。ユーザーのプロフィールと目標の設定はBackboneと[jQuery](http://jquery.com/)そして[Handlebars](http://handlebarsjs.com/)で提供され、さらに新しい機能のほとんどは、[the API](https://github.com/Khan/khan-api/)の質の大きな向上として、クライアントサイドに反映され続けています。
### フロー(1):
File: README.md
## 監訳の依頼、およびPull Requestのフローについて
### ブックマーク(1):
File: docs\Router.md
多くの場合、Webアプリケーションはリンク可能、ブックマーク可能、シェア可能なURLをアプリ内での重要な所在地のために提供します。最近まで、これらの固定リンクを提供するためにハッシュフラグメント(`#page`)が使われていましたが、History APIの出現とともに、標準的なURL(`/page`)を使うことが可能になりました。 **Backbone.Router** はクライアントサイドページのルーティングのためのメソッド、それらを接続するアクションとイベントを提供します。History APIをサポートしていないブラウザでは、Routerは優雅なフォールバックとURLのフラグメントバージョンへの透過的な変換処理をおこないます。
### ブランチ(1):
File: README.md
翻訳当時の[Backbone.jsのGitHubページ](http://backbonejs.org/)を参考にしています。そのため、その時点の本家[gh-pages](https://github.com/documentcloud/backbone/tree/gh-pages)ブランチから、コミットハッシュのtreeを辿って指定しています。
### ブログ(1):
File: docs\Examples.md
[LinkedIn](http://www.linkedin.com/)は[次世代の HTML5 モバイルWebアプリ](http://www.linkedin.com/static?key=mobile)にBackbone.jsを利用しました。Backboneによってアプリのモジュール性、編成、拡張性を容易に維持することが出来たため、LinkedInのユーザー体験の複雑さをプログラムすることを可能としました。このアプリは[Zepto](http://zeptojs.com/)、[Underscore.js](https://gist.github.com/4285928)、[SASS](http://sass-lang.com/)、[iScroll](http://cubiq.org/iscroll)、HTML5 LocalStorageとcanvasも利用しています。技術チームはモバイルでのパフォーマンス改善について[LocalStorageを利用した体験談](http://engineering.linkedin.com/mobile/linkedin-ipad-using-local-storage-snappy-mobile-apps)をブログで紹介しています。
### ブートストラップ(1):
File: docs\Collection.md
Railsアプリケーションでページの初期読み込みの間にコレクションのブートストラップに **reset** を使用する例を上げます。
### プッシュ(1):
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### プラグイン(1):
File: docs\FAQ.md
もしあなたが他のもっと厳格な何かを探すのであれば、モデル間の洗練されたアソシエーションを追加したBackboneプラグインがいくつかあり、[Wikiで見つけることができます](https://github.com/documentcloud/backbone/wiki/Extensions%2C-Plugins%2C-Resources)。
### プロクシ(1): プロキシ(8)、プロキシー(2)
File: docs\Events.md
コールバックには特別にどんなイベントが起きてもトリガーにする `all` イベントがバインドされており、これには第1引数のイベントの名前が渡されます。例えば、あるオブジェクトから別のオブジェクトに全てのイベントをプロクシさせるにはこのような形になります。:
### プロダクティビティアプリ(1):
File: docs\Examples.md
[Do](http://do.com/)はタスクの消化やプロジェクトの管理を簡単にする、ソーシャルなプロダクティビティアプリです。[Do.com](http://do.com/)のウェブアプリはスマートフォン、タブレット、PCでシームレスに動作するようにゼロから構築されました。製作チームはBackboneと[CoffeeScript](http://coffeescript.org/)や[Handlebars](http://handlebarsjs.com/)を記録的な短時間で構築し、複雑なナビゲーションとモデルの同期を行うための独自拡張を実現するために利用しました。
### プロフィール(1):
File: docs\Examples.md
[Khan Academy](http://www.khanacademy.org/)はあらゆる人々に世界レベルの教育を提供しようというひとつの試みです。数千のビデオ、数百のJavaScriptで動く演習問題、そして未来に向けた壮大な計画のために、Khan AcademyはBackboneを利用してフロントエンドのコードのモジュール化と最適化を実現しています。ユーザーのプロフィールと目標の設定はBackboneと[jQuery](http://jquery.com/)そして[Handlebars](http://handlebarsjs.com/)で提供され、さらに新しい機能のほとんどは、[the API](https://github.com/Khan/khan-api/)の質の大きな向上として、クライアントサイドに反映され続けています。
### ページロード(1):
File: docs\Collection.md
**fetch** はページロードのコレクションに使用するべきでは無いというのは注意点です。&mdash;全てのモデルはロードされた時点でその場で[bootstrap](#FAQ-bootstrap)する必要があるからです。 **fetch** は即時性が必要のないインターフェースのためのレイジーロードモデル用に用意されています。:例としてトグルで開閉するノートのコレクションがあるドキュメントなどです。
### ページング(1):
File: docs\Collection.md
**jQuery.ajax** オプションも **fetch** オプションに渡す事ができるので、特定のページング済みコレクションの特定のページをフェッチできます。:
### ホワイトリスト(1):
File: docs\Sync.md
例として、`Backbone` から呼び出す `"update"` へのRailsの応答ハンドラはこのようになります。
_(実際のコードでは `update_attributes` を盲目的に利用することはなく、常に変更できる属性をホワイトリスト化してください。)_
### ホームページ(1):
File: docs\Examples.md
[WordPress.com](http://wordpress.com/)は[WordPress](http://wordpress.org/)のWebサービスとしてのバージョンです。Backbone.jsのModels、Collections、Viewsをその[通知システム](http://en.blog.wordpress.com/2012/05/25/notifications-refreshed/)で利用しています。Backbone.jsはアプリケーションの構造に容易にフィットする唯一の選択肢として採用されました。[Automattic社](http://automattic.com/)の統計情報タブとホームページ全体の機能をBackbone.jsに統合しています。
### ボディ(1):
File: docs\Sync.md
**Backbone.sync** の既定の動作。
modelを保存する場合、modelの属性値はJSONにシリアライズされてHTTPボディに渡され、コンテントタイプに `application/json` を指定して送信します。
### ポインタ(1):
File: docs\FAQ.md
**ModelとViewをつなぐ参照**は、複数の方法で制御できます。一部の人は、ポインタを直接持たせてViewとModelを1:1にすることを好みます(`model.view` と `view.model`)。他にも、Controllerを設けて、Viewを階層的に作成・編成して、コントロールする方法も好まれます。その他はイベントアプローチを好み、直接メソッドを呼ぶかわりに、常にイベントを発火させてコントロールします。これらのスタイルのすべてがうまく動作します。
### ミックス(1):
File: docs\Events.md
**Events** は、あらゆるオブジェクトをミックスする事ができ、オブジェクトにカスタムイベントをバインドしたりトリガーにしたりする事ができるモジュールです。Eventsはバインドされる前に呼ばれるなければなりませんし、渡された引数を取る事ができます。例:
### メソッドシグネイチャ(1):
File: docs\Sync.md
**Backbone.sync** のメソッドシグネイチャは `sync(method, model, [options])` です。
### モデリング(1):
File: docs\FAQ.md
BackboneはネストしたModelやCollectionまたは"has many"なアソシエーションの直接的なサポートを含みません。なぜならばクライアントサイドで構造化データをモデリングするための良いパターンが幾つかあり、Backboneはそれらのいずれかを実装するための基板を提供する必要があります。あなたが望むように...
### モバイルサイト(1):
File: docs\Examples.md
[Gilt Groupe](http://gilt.com/)はBackbone.jsを利用し、関連サイトを含む複数のアプリケーションの構築を行いました。[Giltの モバイルサイト](http://m.gilt.com/)では、Backboneと[Zepto.js](http://zeptojs.com/)を用いて、出先のユーザーに対して、超高速なショッピング体験を提供していて、[Gilt Live](http://live.gilt.com/)では顧客がリアルタイムに購入している商品をBackboneとWebSocketsを結合して表示しています。Giltの検索機能もBackboneを用いて、フィルターや商品の並び替えをクライアントサイドで行うことで効率的に行えるようにしています。
### ユーザ(1): ユーザー(8)
File: docs\Examples.md
[Hulu](http://hulu.com/)は次世代のオンラインビデオ体験の構築にBackbone.jsを利用しました。Backboneを基盤としてウェブインターフェイスは刷新され、すべてのページのコンテンツはユーザの操作に合わせてスムーズに動的に読み込みを行うようになった。Backboneはスクリプトや埋め込まれたビデオをリロードすることなくアプリの中を移動することを容易にしつつ、追加のデータ操作を行えるよう、モデルとコレクションも提供しています。
### ライセンス(1):
File: README.md
Backboneのライセンスを引き継ぎ、すべてMIT Licenseとします。
### ライセンス・クレジット(1):
File: README.md
##ライセンス・クレジット
### ライトスルーページ(1):
File: docs\Examples.md
[Pitchfork](http://pitchfork.com/)は、サイト全体のオーディオプレーヤー、[Pitchfork.tv](http://pitchfork.com/tv/)、位置情報のルーティング、ロケーションルーティング、ライトスルーページをキャッシュに分解するなど多くの用途でBackbone.jsを利用しています。Backbone.js(と[Underscore.js](http://underscorejs.org/))は、クリーンでモジュール化されたコンポーネントの制作と迅速な移行、そしてスパゲッティコードではなくサイトの運営に注力することに寄与しています。
### ラインアップ(1):
File: docs\FAQ.md
Backboneの全体的な構造を、RailsのようなサーバーサイドMVCフレームワークと比較すると、このようなラインアップになります。
### ラッパー(1):
File: docs\FAQ.md
のように設定します。それ以外の場合は、[parse](http://backbonejs.org/#Model-parse)をオーバーライドして、Model名のラッパーを取り除いてModelの値を取り出してやります。同様に、BackboneのPUTとPOSTにおいてModelをJSONで表現するときも、RailsはデフォルトでModel名がrootに含まれることを期待します。Controllerで`params`から直接的に値をフィルタすることができ、もしくはBackboneの[toJSON](http://backbonejs.org/#Model-toJSON)を上書きしてRailsが期待するようになるようrootにModel名を追加します。
### ランダム(1):
File: docs\FAQ.md
+ Backboneはライブラリであって、フレームワークではないので、他のライブラリと併用しやすいです。DojoアプリにBackboneウィジェットを埋め込むことは難なくできますし、d3を利用したビジュアライゼーションのデータ管理にもBackboneのModelを利用できます。(ここに挙げているのはランダムな2つの例です)
### リクエストヘッダー(1):
File: docs\Sync.md
もしBackbone既定のREST/HTTPアプローチをサポートしていないレガシーなWebサーバ上で作業したい場合、`Backbone.emulateHTTP`をオンにしてください。
この関数にtrueを設定して `PUT` や `DELETE` リクエストを要求した場合、`X-HTTP-Method-Override` HTTPリクエストヘッダーを `POST` に偽装してリクエストを要求します。
### リスニング(1):
File: docs\FAQ.md
たとえば、多くの`Message` modelをもつ`Mailbox` modelを考えてみましょう。これを処理するための良い方法のひとつは、Mailboxに`this.messages` collectionを持たせMailboxがはじめに開かれたときに、遅延ロードされるようにします。おそらく`MessageList` viewは、`add`と`remove`イベントをリスニングするようになるでしょう。
### リッチ(1):
File: docs\Introduction.md
大量のJavaScriptを含むWebアプリケーションの開発において、まず最初に学ぶ事はデータをDOMに紐付けるのをやめることです。HTMLのUI、JavaScriptのロジック、そしてサーバ上のデータベース、これらの間でデータの同期を取ろうとして、jQueryのセレクタとコールバックが複雑に積み重なったJavaScriptアプリを書いてしまう、というのは非常にやってしまいがちなことですが、リッチなクライアントサイド・アプリケーションにおいては、より構造的なアプローチの方がうまくいく場合が多いのです。
### リファレンス(1):
File: docs\Upgrading.md
+ Modelの扱いはとても楽観的です。サーバーからの応答があるまで過去の振る舞いを維持したい場合は、`{wait: true}`を設定するようにしてください。[save](#Model-save)メソッドをコールする場合にも同様の事が言えます。
+ これまで`$(view.el)`を利用してきたなら、このjQueryオブジェクトに対するキャッシュされたリファレンスである[$el](#View-$el)が利用できるようになりました。
### リフロー(1):
File: docs\View.md
すべてのViewは、それが既にページに挿入されているかそうでないかに関わらず、常に何らかのDOM要素を所持しています( **el** プロパティ)。こうすることで、UIの描画を効率良く行うため、できるだけ少ないリフローとリペイントで、Viewはいつでもレンダリングでき、一度にすべてをDOMへ挿入するようになっています。Viewに`tagName`、`className`、`id`そして`attributes`プロパティが指定されていれば、それらから`this.el`が作られます。そうでない場合は、 **el** は空の`div`になります。
### リペイント(1):
File: docs\View.md
すべてのViewは、それが既にページに挿入されているかそうでないかに関わらず、常に何らかのDOM要素を所持しています( **el** プロパティ)。こうすることで、UIの描画を効率良く行うため、できるだけ少ないリフローとリペイントで、Viewはいつでもレンダリングでき、一度にすべてをDOMへ挿入するようになっています。Viewに`tagName`、`className`、`id`そして`attributes`プロパティが指定されていれば、それらから`this.el`が作られます。そうでない場合は、 **el** は空の`div`になります。
### リポジトリ(1): レポジトリ(2)
File: docs\Examples.md
Backboneの例としてリポジトリにバンドルされている[Todo List アプリケーション](examples/todos/index.html)は[Jérôme Gravel-Niquet](http://jgn.me/)が作成したものです。もしBackboneをどこから始めたらいいか迷っている場合は、ひととおり[注釈付きのソース](docs/todos.html)を読む時間をとってみましょう。このアプリケーションではサーバにブラウザ内のすべてのtodoに送らずに、[LocalStorageのアダプター](docs/backbone-localstorage.html)を利用して透過的に保存します。Jérômeは[localtodos.com](http://localtodos.com/)にjQueryの代わりに[MooToolsを利用したバージョン](http://github.com/jeromegn/backbone-mootools)も作成しています。
### リリース(1):
File: docs\Upgrading.md
Backbone.js ver0.9系は、ver1.0のリリース候補版として位置付けています。いくつかのAPIが変更され、多くの活用すべき新機能があります、それらの変更については[更新履歴](#changelog)に記載されていますが、特に以下のいくつかの変更点については注意が必要です:
### リーダー(1):
File: docs\Examples.md
[NewsBlur](http://www.newsblur.com/)デスクトップアプリのように高速でレスポンシブルなUIのRSSリーダーとソーシャルニュースネットワークです。Backbone.jsは[大幅な書き換えとスパゲッティコードからの移行](http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/)のために、パワフルでシンプルな機能群、容易な統合性そして大規模なコミュニティを理由として選ばれました。もしあなたがこのあたりの中身をつついてみたい場合、NewsBlurも完全に[オープンソース](http://github.com/samuelclay/NewsBlur)になっています。
### レイジーロードモデル(1):
File: docs\Collection.md
**fetch** はページロードのコレクションに使用するべきでは無いというのは注意点です。&mdash;全てのモデルはロードされた時点でその場で[bootstrap](#FAQ-bootstrap)する必要があるからです。 **fetch** は即時性が必要のないインターフェースのためのレイジーロードモデル用に用意されています。:例としてトグルで開閉するノートのコレクションがあるドキュメントなどです。
### レイヤー(1):
File: docs\Examples.md
Foursquareは友達と会ったり、新しいスポットを見つけたり、お金を節約できる楽しくて小さなスタートアップ企業です。Backbone Modelsは[トップページのマップ](https://foursquare.com/)や[リスト](https://foursquare.com/seriouseats/list/the-best-doughnuts-in-ny)のような非常に利用頻度の高い機能を供給するコアとなるJavaScirpt APIレイヤーとViewsで多く用いられています。
### レスポンシブル(1):
File: docs\Examples.md
[NewsBlur](http://www.newsblur.com/)デスクトップアプリのように高速でレスポンシブルなUIのRSSリーダーとソーシャルニュースネットワークです。Backbone.jsは[大幅な書き換えとスパゲッティコードからの移行](http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/)のために、パワフルでシンプルな機能群、容易な統合性そして大規模なコミュニティを理由として選ばれました。もしあなたがこのあたりの中身をつついてみたい場合、NewsBlurも完全に[オープンソース](http://github.com/samuelclay/NewsBlur)になっています。
### レスポンスコード(1):
File: docs\Model.md
**save** はオプションとして`sucess`および`error`コールバックを受け取ります。それぞれのコールバックの引数は順に`(model, response, options)`および`(model, xhr, options)`となります。モデルが`validate`メソッドを持っていて、検査に失敗したときにも`error`コールバックが呼ばれます。サーバ側で失敗した場合は、`200`以外のHTTPレスポンスコードとともに、エラーがテキストもしくはJSONの形式で返却されます。
### レポジトリリスト(1):
File: README.md
- [翻訳予定のOSS](https://github.com/enja-oss/README/blob/master/readme.md#%E7%BF%BB%E8%A8%B3%E4%BA%88%E5%AE%9A%E3%81%AEoss)
- [レポジトリリスト](https://github.com/enja-oss/README/blob/master/readme.md#%E3%83%AC%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%83%AA%E3%82%B9%E3%83%88)
### ロケーションルーティング(1):
File: docs\Examples.md
[Pitchfork](http://pitchfork.com/)は、サイト全体のオーディオプレーヤー、[Pitchfork.tv](http://pitchfork.com/tv/)、位置情報のルーティング、ロケーションルーティング、ライトスルーページをキャッシュに分解するなど多くの用途でBackbone.jsを利用しています。Backbone.js(と[Underscore.js](http://underscorejs.org/))は、クリーンでモジュール化されたコンポーネントの制作と迅速な移行、そしてスパゲッティコードではなくサイトの運営に注力することに寄与しています。
### アプローチ(2):
File: docs\Introduction.md
大量のJavaScriptを含むWebアプリケーションの開発において、まず最初に学ぶ事はデータをDOMに紐付けるのをやめることです。HTMLのUI、JavaScriptのロジック、そしてサーバ上のデータベース、これらの間でデータの同期を取ろうとして、jQueryのセレクタとコールバックが複雑に積み重なったJavaScriptアプリを書いてしまう、というのは非常にやってしまいがちなことですが、リッチなクライアントサイド・アプリケーションにおいては、より構造的なアプローチの方がうまくいく場合が多いのです。
### アンセット(2):
File: backbone.js
// Viewの部分を更新する必要があるかと、または何の属性をサーバーサイドで永続化する
// 必要があるかを判断するのに便利である。アンセットされた属性には、undefinedが
### イメージ(2):
File: backbone.js
// ※ 訳注メモ
// hash - ハッシュ: RubyのHashをイメージしていると思われる。ただしRouterの項では、
### インターバル(2):
File: backbone.js
// ハッシュチェンジのポーリングが必要なとき、デフォルトのインターバルは1秒に20回である。
### インベト(2):
File: backbone.js
// サーバーからモデルをフェッチする。サーバーが示すモデルが、現在の属性と異なるとき、
// 上書きされて`"change"`インベトを発火する。
### インライン(2):
File: docs\Examples.md
[Bitbucket](http://www.bitbucket.org/)はGitやMercurialの無料のソースコードホスティングサービスです。モデルとコレクションを通してBackbone.jsが、Bitbucketの[REST API](https://api.bitbucket.org/)はもちろん、新しいコンポーネントであるインラインでのコメントのコーディングやPull Requestの許可などにおいて有用であることを証明しています。
### ウェブアプリ(2):
File: docs\Examples.md
[Disqus](http://www.disqus.com/)はコメント用のウィジェットの最新版のエンジンにBackbone.jsを選択しました。Backboneの容量の小ささと容易な拡張性が、iframeの中にすべてを提供し、そしてIGNやWired、CNN、MLBなどの幾千ものウェブの資産を供給する存在であるDisqusのウェブアプリを配布へするための正しい選択となりました。
### ウェブサーバ(2):
File: docs\History.md
**pushState** のサポートは Backbone 内で、純粋にオプトインを基本として存在します。`pushState` をサポートしていない古いブラウザでは、ハッシュベースのURLフラグメントを使い続けますが、もし `pushState` 対応ブラウザでハッシュURLに訪れている場合、それは透過的に本当のURLにアップグレードされます。本当のURL群を使うことで、ウェブサーバは正しくそれらのページをレンダリングできなければならず、そのため、バックエンドの変更も必要になります。例えば、`/documents/100` へのルートがある場合、ブラウザでそのURLに直接訪問したら、ウェブサーバはそのページを提供できなければなりません。サーチエンジンが完全にクロールできるようにするには、サーバに完全なページのHTMLを生成させるのが最善です … が、ウェブアプリケーションの場合は、ルートURL用のものと同じ内容だけをレンダリングし、あとはBackboneのビューと JavaScriptがうまく動いて残りを埋めます。
### エイリアス(2):
File: backbone.js
// 後方互換のためのエイリアス
### エクスポート(2):
File: backbone.js
// トップレベルの名前空間。Backboneのすべてのパブリックのクラスとモジュールはこれにアタッチされる。
// CommonJSとブラウザ環境の両方にエクスポートする。
### エラーイベント(2):
File: backbone.js
// フォールバックのエラーイベントと共にオプションのエラーコールバックをラップする。
### エラーコールバック(2):
File: backbone.js
// フォールバックのエラーイベントと共にオプションのエラーコールバックをラップする。
### エラーメッセージ(2):
File: docs\Model.md
### validate `model.validate(attributes)` [原文](http://backbonejs.org/#Model-validate)
このメソッドは未定義ですが、もしJavaScriptで実行可能な検査をお持ちでしたら、ご自身でオーバーライドして独自の検査ロジックを記述することをお勧めします。 **validate** は`set`と`save`が実行される直前に呼び出され、`set`もしくは`save`により更新された属性値が引数として渡されます。もしこれら属性値が正しければ **validate** メソッドは戻り値として何も返さないでください。もし属性値が不正な場合、ご自身で定義したエラー値を返してください。単純にエラーメッセージの文字列を返すだけでもかまいませんし、プログラム的にエラーを記述した完全なエラーオブジェクトを返す事も可能です。もし **validate** がエラーを返した場合、`set`および`save`は続行されず、モデルの属性は変更されません。検査に失敗した場合は`"error"`イベントが発行されます。
### エンドポイント(2):
File: backbone.js
// サーバー上でモデルを示すデフォルトのURL、BackboneのRESTfulなメソッドを利用する
// 場合は、これをオーバーライドしてコールすべきエンドポイントに変更する。
### オプションオブジェクト(2):
File: backbone.js
//
// ルートのコールバックを発火したい場合(通常は望ましくない)、オプションオブジェクトに
### オプションリスト(2):
File: backbone.js
// プロパティとしてマージされるViewのオプションリスト。
### カバー(2):
File: README.md
部分的な翻訳済みドキュメントを集めていって、翻訳カバー率100%を目指します。
### クエリー(2):
File: docs\View.md
jQueryまたはZeptoがページに読み込まれている場合、それぞれのViewは自身の要素の中をスコープとしてクエリーを実行する **$** 関数を持ちます。このスコープにあるjQuery関数を使う場合、特定の要素をリストから取ってくるためにモデルのIDをクエリーの一部分として使う必要はなく、HTMLのクラス属性により強く依存するようになります。これは、`view.$el.find(selector)`の実行と等価です。
### クラスプロパティ(2):
File: backbone.js
// サブクラスのプロトタイプチェーンを正しく設定するヘルパ関数。`goog.inherits`に
// 似ているがプロトタイププロパティのハッシュを利用し、クラスプロパティを継承する。
### グループ(2):
File: README.md
[README](https://github.com/enja-oss/README)レポジトリはenja-ossのトップページです。このレポジトリの[README](https://github.com/enja-oss/README/blob/master/readme.md)や[Issues](https://github.com/enja-oss/README/issues)にて本グループに参加いただく際の注意点などを記載しています。グループワークを円滑に行うために一読してください。
### グローバルオブジェクト(2):
File: backbone.js
// グローバルオブジェクトの参照を保存する(ブラウザでは`window`を指し、サーバー環境
### コメント(2):
File: docs\Examples.md
[Bitbucket](http://www.bitbucket.org/)はGitやMercurialの無料のソースコードホスティングサービスです。モデルとコレクションを通してBackbone.jsが、Bitbucketの[REST API](https://api.bitbucket.org/)はもちろん、新しいコンポーネントであるインラインでのコメントのコーディングやPull Requestの許可などにおいて有用であることを証明しています。
### コレクションクラス(2):
File: backbone.js
// 並び順に関わらずモデルのセット用に標準的なコレクションクラスを提供する。
### コントロール(2):
File: docs\FAQ.md
**ModelとViewをつなぐ参照**は、複数の方法で制御できます。一部の人は、ポインタを直接持たせてViewとModelを1:1にすることを好みます(`model.view` と `view.model`)。他にも、Controllerを設けて、Viewを階層的に作成・編成して、コントロールする方法も好まれます。その他はイベントアプローチを好み、直接メソッドを呼ぶかわりに、常にイベントを発火させてコントロールします。これらのスタイルのすべてがうまく動作します。
### コンポーネント(2):
File: docs\Examples.md
[Bitbucket](http://www.bitbucket.org/)はGitやMercurialの無料のソースコードホスティングサービスです。モデルとコレクションを通してBackbone.jsが、Bitbucketの[REST API](https://api.bitbucket.org/)はもちろん、新しいコンポーネントであるインラインでのコメントのコーディングやPull Requestの許可などにおいて有用であることを証明しています。
### コーナー(2):
File: README.md
コンテンツの翻訳にご協力くださる方は、ぜひ[着手予定の宣言コーナー](https://github.com/enja-oss/Backbone/issues/1 "着手予定の宣言コーナー · Issue #1 · enja-oss/Backbone")でお知らせください。その際に、着手予定のが他の人とかぶっていないこともご確認ください。
### コールバックリスト(2):
File: backbone.js
// 不変なコールバックリストを作成し、変更中の探索を認める。末尾は空のオブジェクトで
### サービス(2):
File: docs\Examples.md
[WordPress.com](http://wordpress.com/)は[WordPress](http://wordpress.org/)のWebサービスとしてのバージョンです。Backbone.jsのModels、Collections、Viewsをその[通知システム](http://en.blog.wordpress.com/2012/05/25/notifications-refreshed/)で利用しています。Backbone.jsはアプリケーションの構造に容易にフィットする唯一の選択肢として採用されました。[Automattic社](http://automattic.com/)の統計情報タブとホームページ全体の機能をBackbone.jsに統合しています。
### スコープ(2):
File: docs\View.md
jQueryまたはZeptoがページに読み込まれている場合、それぞれのViewは自身の要素の中をスコープとしてクエリーを実行する **$** 関数を持ちます。このスコープにあるjQuery関数を使う場合、特定の要素をリストから取ってくるためにモデルのIDをクエリーの一部分として使う必要はなく、HTMLのクラス属性により強く依存するようになります。これは、`view.$el.find(selector)`の実行と等価です。
### スパゲッティコード(2):
File: docs\Examples.md
[NewsBlur](http://www.newsblur.com/)デスクトップアプリのように高速でレスポンシブルなUIのRSSリーダーとソーシャルニュースネットワークです。Backbone.jsは[大幅な書き換えとスパゲッティコードからの移行](http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/)のために、パワフルでシンプルな機能群、容易な統合性そして大規模なコミュニティを理由として選ばれました。もしあなたがこのあたりの中身をつついてみたい場合、NewsBlurも完全に[オープンソース](http://github.com/samuelclay/NewsBlur)になっています。
### ソース(2):
File: docs\Examples.md
Backboneの例としてリポジトリにバンドルされている[Todo List アプリケーション](examples/todos/index.html)は[Jérôme Gravel-Niquet](http://jgn.me/)が作成したものです。もしBackboneをどこから始めたらいいか迷っている場合は、ひととおり[注釈付きのソース](docs/todos.html)を読む時間をとってみましょう。このアプリケーションではサーバにブラウザ内のすべてのtodoに送らずに、[LocalStorageのアダプター](docs/backbone-localstorage.html)を利用して透過的に保存します。Jérômeは[localtodos.com](http://localtodos.com/)にjQueryの代わりに[MooToolsを利用したバージョン](http://github.com/jeromegn/backbone-mootools)も作成しています。
### ソースコード(2):
File: docs\FAQ.md
+ より小さいライブラリです。この軽量さはダウンロードのためであるし、把握すべき概念が広大でないことも示しています。あなたは午後いっぱいソースコードを読めば、これらを理解することができます。
### タグ(2):
File: docs\Examples.md
[MetaLab](http://www.metalabdesign.com/)はチーム向けタスク管理アプリの[Flow](http://www.getflow.com/)を作成するためにBackbone.jsを利用しました。ワークスペースはタスクビュー、アクティビティ、アカウント、フォルダ、プロジェクトそしてタグの機能を構築するためにBackbone.jsに依存しています。window.Flow内部で詳細な部分を見ることができます。
### タスク(2):
File: docs\Examples.md
[MetaLab](http://www.metalabdesign.com/)はチーム向けタスク管理アプリの[Flow](http://www.getflow.com/)を作成するためにBackbone.jsを利用しました。ワークスペースはタスクビュー、アクティビティ、アカウント、フォルダ、プロジェクトそしてタグの機能を構築するためにBackbone.jsに依存しています。window.Flow内部で詳細な部分を見ることができます。
### ダイナミック(2):
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### テンプレーティング(2):
File: docs\View.md
Backboneは、あなたが好むHTMLテンプレーティングの方法にとらわれることなく関知しません。あなたの **render** 関数は、HTML文字列を置換することも、`document.createElement`でDOMツリーを作成することも同様に行うことができます。しかし、我々は素晴らしいJavaScriptテンプレーティングライブラリを選ぶことをおすすめします。[Mustache.js](http://github.com/janl/mustache.js)や[Haml-js](http://github.com/creationix/haml-js)、そして[Eco](http://github.com/sstephenson/eco)、これらはすべて良い代替手段と言えます。そのように言うのも、ページには[Underscore.js](http://documentcloud.github.com/underscore/)が既にあるため[_.template](http://documentcloud.github.com/underscore/#template)を利用することができ、XSS対策のサニタイズが済んだデータを挿入する場合は、素晴らしい選択になるからです。
### テンプレーティングライブラリ(2):
File: docs\View.md
BackboneのViewは、コードというよりはほとんど慣習に近い存在です ー ViewはHTMLやCSSについて何も決定付けることはなく、任意のJavaScriptテンプレーティングライブラリと合わせて使用できます。一般的なアイディアとしては、ページを全体を再描画せず、モデルが変更されたときにそれぞれが独立して更新できる、Modelに支えられたロジカルなViewとしてインターフェースを整理します。JSONオブジェクトを掘り、DOMの中にある要素を参照し、手動でHTMLを更新する代わりに、Viewの`render`関数をモデルの`"change"`イベントに結びつけることができます ー そうすると、UIの中のモデルデータを表示しているすべての箇所は、いつでも即座に最新になります。
### ディスパッチ(2):
File: docs\FAQ.md
異なる[Model-View-Controller]([Model–view–controller - Wikipedia, the free encyclopedia](http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller "Model–view–controller - Wikipedia, the free encyclopedia")パターンの実装において、コントローラーの定義について異議を唱える傾向にあります。何かの役に立つのであれば、Backboneは[View](http://backbonejs.org/#View)クラスをControllerのようなものとして考えることができ、UIから発生するイベントをディスパッチしながら、従来のViewのようにHTMLテンプレートも使用します。我々がそれをViewと呼ぶのは、それがUIロジックの単位を示し、単一のDOM要素の内容に責任を持っているからです。
### デコード(2):
File: backbone.js
// 本来のハッシュ値を取得する。Firefoxにおけるlocation.hashが常にデコードされる
### デフォルトオプション(2):
File: backbone.js
// 指定しない限りのデフォルトオプション。
### デフォルトセット(2):
File: backbone.js
// このコレクションにおけるモデルのデフォルトセットをフェッチし、それらでコレクションを
### データー(2): データ(27)
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### トップページ(2):
File: README.md
[README](https://github.com/enja-oss/README)レポジトリはenja-ossのトップページです。このレポジトリの[README](https://github.com/enja-oss/README/blob/master/readme.md)や[Issues](https://github.com/enja-oss/README/issues)にて本グループに参加いただく際の注意点などを記載しています。グループワークを円滑に行うために一読してください。
### トリック(2):
File: backbone.js
// IE7以前でハッシュの変更を入れるため、iframeを開いて・閉じるトリックを行う。
### ドメイン(2):
File: docs\History.md
もしあなたのアプリケーションがドメインのルートURL `/` で提供されていない場合、ルートが本当はどこにあるのかを、かならず、このようなオプションでHistoryに教えてください: `Backbone.history.start({pushState: true, root: "/public/search/"})`
### ナビゲーション(2):
File: docs\Examples.md
[Do](http://do.com/)はタスクの消化やプロジェクトの管理を簡単にする、ソーシャルなプロダクティビティアプリです。[Do.com](http://do.com/)のウェブアプリはスマートフォン、タブレット、PCでシームレスに動作するようにゼロから構築されました。製作チームはBackboneと[CoffeeScript](http://coffeescript.org/)や[Handlebars](http://handlebarsjs.com/)を記録的な短時間で構築し、複雑なナビゲーションとモデルの同期を行うための独自拡張を実現するために利用しました。
### ネームスペース(2):
File: docs\Collection.md
**parse** はBackboneによって[fetch](#Collection-fetch)を使いサーバーからコレクションのモデルを返されたらいつでも呼び出されます。この関数は生の`response`オブジェクトを渡され、コレクションに[add](#Collection-add)されたモデルの属性の配列を返します。デフォルトの実装では何もしませんが、単純にJSONレスポンスを返します。既存のAPIで動かす場合や、レスポンスのより良いネームスペースの為にこの関数を上書きする事ができます。上書き後の注意点として、モデルクラスが既に`parse`関数を持っていた場合には、フェッチされたモデルそれぞれに対して実行される事になる点です。
### ノード(2):
File: backbone.js
// 不変なコールバックリストを作成し、変更中の探索を認める。末尾は空のオブジェクトで
// 常に次のノードとして利用される。
### ハッシュチェンジ(2):
File: backbone.js
// ハッシュチェンジのポーリングが必要なとき、デフォルトのインターバルは1秒に20回である。
### バグ(2):
File: backbone.js
// 本来のハッシュ値を取得する。Firefoxにおけるlocation.hashが常にデコードされる
// バグにより、location.hashを直接取り扱うことはできない。
### バリデート(2):
File: backbone.js
// 属性の変更を`wait`するときは、先にバリデートする。
### パッケージ(2):
File: docs\Examples.md
[USA Today](http://usatoday.com)はBackboneのデータ/モデルのライフサイクルのモジュール性を上手に利用しています。コードを扱いやすく、そして無駄のない形で維持するために、アプリケーションのオブジェクトをシンプルに作り、継承し、分離し、結びつけます。新しいウェブサイトではpushStateに対応したブラウザとレガシーなブラウザへのページ出力制御のためにBackbone Routerが多用されています。最後に、担当チームはBackbone's Eventの利点を用いて、サードパーティー作成のものや解析のパッケージをアプリケーションの心臓部にフックできるようにPubSub APIを作成しました。
### パブリック(2):
File: backbone.js
// トップレベルの名前空間。Backboneのすべてのパブリックのクラスとモジュールはこれにアタッチされる。
### パラメーター(2): パラメータ(15)
File: docs\Router.md
routesハッシュは[View](http://documentcloud.github.com/backbone/#View)の[eventsハッシュ](http://documentcloud.github.com/backbone/#View-delegateEvents)と似ており、ルーター上でURLとパラメーターを関数にマッピングします。ルートは、`:param`のようなスラッシュの間の単一のURL構成要素と一致するパラメーター部分や、`*splat`のような複数のURL構成要素に一致するsplat部分を含むことができます。
### ビデオ(2):
File: docs\Examples.md
[Hulu](http://hulu.com/)は次世代のオンラインビデオ体験の構築にBackbone.jsを利用しました。Backboneを基盤としてウェブインターフェイスは刷新され、すべてのページのコンテンツはユーザの操作に合わせてスムーズに動的に読み込みを行うようになった。Backboneはスクリプトや埋め込まれたビデオをリロードすることなくアプリの中を移動することを容易にしつつ、追加のデータ操作を行えるよう、モデルとコレクションも提供しています。
### フィールド(2):
File: backbone.js
// URLフラグメントとしてのハッシュを主に指していることに注意。
// attribute - 属性: Modelが表現する値のフィールドを指して属性と言う。
### フェイク(2):
File: backbone.js
// ルーターは、フェイクURLをアクションにマップし、ルートが一致したときにイベントを発火
### フォーム(2):
File: docs\FAQ.md
+ 2way-bindingを敢えて備えていません。それは確かに、気の利いたデモができて、基本的なCRUD操作として動きますが、あなたのアプリケーションにおいて劇的に便利に使えることは現実的にありません。ときには`keypress`のたびにアップデートしたいでしょうし、`blur`のときにしたい、パネルを閉じたときにしたい、保存ボタンが押されたときにしたいと様々です。ほとんどのケースにおいて、フォームのデータをJSONに単純にシリアライズすることが速くて簡単です。さておき、使う用途がはっきりしているのであれば、[使えば](http://rivetsjs.com/)よい[でしょう](http://nytimes.github.com/backbone.stickit/)。
### フォームパラメータ(2):
File: backbone.js
// `emulateJSON`を有効にすると ... 代わりに`application/x-www-form-urlencoded`
// としてリクエストボディをエンコードし、`model`という名前のフォームパラメータとして、
### プロキシー(2): プロキシ(8)、プロクシ(1)
File: backbone.js
// Underscoreのメソッドが`Collection#models`へのプロキシーになるようmixinする。
### ヘッダ(2): ヘッダー(2)
File: backbone.js
// 古いサーバーは、`_method`と`X-HTTP-Method-Override`ヘッダに、本来のHTTPメソッド
### ヘッダー(2): ヘッダ(2)
File: backbone.js
// このオプションを設定すると、`_method`パラメータと`X-Http-Method-Override`
// ヘッダーを付与して、擬似的に`"PUT"`と`"DELETE"`をリクエストをする。
### ヘルパ(2): ヘルパー(2)
File: backbone.js
// サブクラスのプロトタイプチェーンを正しく設定するヘルパ関数。`goog.inherits`に
### ヘルパー(2): ヘルパ(2)
File: backbone.js
// Backboneオブジェクトからプロパティまたは関数として値を得るためのヘルパー関数。
### マージ(2):
File: backbone.js
// プロパティとしてマージされるViewのオプションリスト。
### メモ(2):
File: backbone.js
// http://backbonejs.org
// ※ 訳注メモ
### モックライブラリ(2):
File: backbone.js
// `setDomLibrary`メソッドで、それらの代替になるJavaScriptライブラリを注入できる
// (またはブラウザ外でViewをテストするためのモックライブラリ)。
### モデルオブジェクト(2):
File: docs\Collection.md
コレクションの内部のモデルのJavaScriptの配列に生のアクセスをします。通常は`get`、`at`、やモデルオブジェクトにアクセスする **Underscoreのメソッド** を使いますが、稀に配列に直接参照したい場合もあるでしょう。
### モデルクラス(2):
File: docs\Collection.md
コレクションに含まれる特定のモデルクラスのプロパティを上書きします。定義された場合は[add](#Collection-add)、[create](#Collection-create)と、[reset](#Collection-reset)に生の属性オブジェクト(と、配列)を渡す事ができ、属性はモデル内の適切な型に変換されます。
### モデルセット(2):
File: backbone.js
// セットされているモデルがイベントを発火するたびに呼ばれる内部メソッド。
// モデルのIDが変更されるとき、モデルセットのインデックスを更新する必要がある。
### モデルデータ(2):
File: docs\Collection.md
サーバーからこのコレクション用に規定のモデルをフェッチしてきて、コレクションが生存している場合にリセットします。 **options** ハッシュはそれぞれ`(collection, response, options)`と`(collection, xhr, options)`を引数とした`success`と`error`コールバックを取ります。サーバーからモデルデータが返る際、コレクションは[reset](#Collection-reset)されます。カスタムされた永続化戦略をカバーするのに[Backbone.sync](#Sync)に委譲し、[jqXHR](http://api.jquery.com/jQuery.ajax/#jqXHR)を返します。 **fetch** リクエストを受けたサーバーハンドラはモデルのJSON配列を返します。
### モバイル(2):
File: docs\Examples.md
[LinkedIn](http://www.linkedin.com/)は[次世代の HTML5 モバイルWebアプリ](http://www.linkedin.com/static?key=mobile)にBackbone.jsを利用しました。Backboneによってアプリのモジュール性、編成、拡張性を容易に維持することが出来たため、LinkedInのユーザー体験の複雑さをプログラムすることを可能としました。このアプリは[Zepto](http://zeptojs.com/)、[Underscore.js](https://gist.github.com/4285928)、[SASS](http://sass-lang.com/)、[iScroll](http://cubiq.org/iscroll)、HTML5 LocalStorageとcanvasも利用しています。技術チームはモバイルでのパフォーマンス改善について[LocalStorageを利用した体験談](http://engineering.linkedin.com/mobile/linkedin-ipad-using-local-storage-snappy-mobile-apps)をブログで紹介しています。
### ユニットテスト(2):
File: backbone.js
// おそらく一時的に、Backbone.historyを無効にする。実際のアプリでは使えないが、
// Routerのユニットテストをする際に便利なことがある。
### ライフサイクル(2):
File: docs\Examples.md
[USA Today](http://usatoday.com)はBackboneのデータ/モデルのライフサイクルのモジュール性を上手に利用しています。コードを扱いやすく、そして無駄のない形で維持するために、アプリケーションのオブジェクトをシンプルに作り、継承し、分離し、結びつけます。新しいウェブサイトではpushStateに対応したブラウザとレガシーなブラウザへのページ出力制御のためにBackbone Routerが多用されています。最後に、担当チームはBackbone's Eventの利点を用いて、サードパーティー作成のものや解析のパッケージをアプリケーションの心臓部にフックできるようにPubSub APIを作成しました。
### リクエストオプション(2):
File: backbone.js
// デフォルトのJSONリクエストオプション。
### リクエストデータ(2):
File: backbone.js
// 適切なリクエストデータを持っているか確かめる。
### リクエストボディ(2):
File: backbone.js
// `emulateJSON`を有効にすると ... 代わりに`application/x-www-form-urlencoded`
// としてリクエストボディをエンコードし、`model`という名前のフォームパラメータとして、
### リダイレクト(2):
File: backbone.js
// ブラウザが新しいURLにリダイレクトするよう、即時returnする。
### リフレッシュ(2):
File: backbone.js
// ハッシュ変更ベースの履歴のフォールバックを、明示的に望んでいなければ`navigate`は
// ページをリフレッシュする。
### リロード(2):
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### ルートマップ(2):
File: backbone.js
// 定義されているすべてのルートを`Backbone.history`に結びつける。
// 最も一般的なルートをルートマップの下部に指定する振る舞いをサポートするため、
### レベル(2):
File: docs\Examples.md
[Khan Academy](http://www.khanacademy.org/)はあらゆる人々に世界レベルの教育を提供しようというひとつの試みです。数千のビデオ、数百のJavaScriptで動く演習問題、そして未来に向けた壮大な計画のために、Khan AcademyはBackboneを利用してフロントエンドのコードのモジュール化と最適化を実現しています。ユーザーのプロフィールと目標の設定はBackboneと[jQuery](http://jquery.com/)そして[Handlebars](http://handlebarsjs.com/)で提供され、さらに新しい機能のほとんどは、[the API](https://github.com/Khan/khan-api/)の質の大きな向上として、クライアントサイドに反映され続けています。
### レポジトリ(2): リポジトリ(1)
File: README.md
[README](https://github.com/enja-oss/README)レポジトリはenja-ossのトップページです。このレポジトリの[README](https://github.com/enja-oss/README/blob/master/readme.md)や[Issues](https://github.com/enja-oss/README/issues)にて本グループに参加いただく際の注意点などを記載しています。グループワークを円滑に行うために一読してください。
### ロジカル(2):
File: docs\FAQ.md
+ Backbone.Router – Railsの`routes.rb`とControllerアクションにあたる。URLをfunctionにマッピングする。
+ Backbone.View – ロジカルで再利用可能なUIのパーツ。常にではないが、多くの場合でModelと関連づいている。
### ワークスペース(2):
File: docs\Examples.md
[MetaLab](http://www.metalabdesign.com/)はチーム向けタスク管理アプリの[Flow](http://www.getflow.com/)を作成するためにBackbone.jsを利用しました。ワークスペースはタスクビュー、アクティビティ、アカウント、フォルダ、プロジェクトそしてタグの機能を構築するためにBackbone.jsに依存しています。window.Flow内部で詳細な部分を見ることができます。
### アクセス(3):
File: docs\Collection.md
コレクションの内部のモデルのJavaScriptの配列に生のアクセスをします。通常は`get`、`at`、やモデルオブジェクトにアクセスする **Underscoreのメソッド** を使いますが、稀に配列に直接参照したい場合もあるでしょう。
### アソシエーション(3):
File: docs\FAQ.md
もしあなたが他のもっと厳格な何かを探すのであれば、モデル間の洗練されたアソシエーションを追加したBackboneプラグインがいくつかあり、[Wikiで見つけることができます](https://github.com/documentcloud/backbone/wiki/Extensions%2C-Plugins%2C-Resources)。
### アップグレード(3):
File: docs\History.md
**pushState** のサポートは Backbone 内で、純粋にオプトインを基本として存在します。`pushState` をサポートしていない古いブラウザでは、ハッシュベースのURLフラグメントを使い続けますが、もし `pushState` 対応ブラウザでハッシュURLに訪れている場合、それは透過的に本当のURLにアップグレードされます。本当のURL群を使うことで、ウェブサーバは正しくそれらのページをレンダリングできなければならず、そのため、バックエンドの変更も必要になります。例えば、`/documents/100` へのルートがある場合、ブラウザでそのURLに直接訪問したら、ウェブサーバはそのページを提供できなければなりません。サーチエンジンが完全にクロールできるようにするには、サーバに完全なページのHTMLを生成させるのが最善です … が、ウェブアプリケーションの場合は、ルートURL用のものと同じ内容だけをレンダリングし、あとはBackboneのビューと JavaScriptがうまく動いて残りを埋めます。
### インスタンスプロパティ(3):
File: backbone.js
// 提供されていれば、サブクラスにプロトタイププロパティ (インスタンスプロパティ) を
### エスケープ(3):
File: backbone.js
// 属性の値をHTMLエスケープして取得する。
### エントリ(3):
File: backbone.js
// いずれかの現在のエントリを置き換えるか、ブラウザの履歴に新しいものを追加して、
### ガイド(3):
File: README.md
##書式ガイド
### コンテキスト(3):
File: backbone.js
// リストされたイベントとコンテキストをループして、
### タイプ(3):
File: backbone.js
// モデルをサーバーで永続化させる方法を変更するには、この関数をオーバーライドする。
// リクエストのタイプと対象のモデルが渡される。デフォルトではModelの`url()`に対して
### ツリー(3):
File: docs\Examples.md
[Bitbucket](http://www.bitbucket.org/)はGitやMercurialの無料のソースコードホスティングサービスです。モデルとコレクションを通してBackbone.jsが、Bitbucketの[REST API](https://api.bitbucket.org/)はもちろん、新しいコンポーネントであるインラインでのコメントのコーディングやPull Requestの許可などにおいて有用であることを証明しています。
Mustacheテンプレートを用いてサーバーとクライアントサイドのレンダリングを行いつつ、カスタマイズした[Google クロージャー](https://developers.google.com/closure/library/)を用いたウィジェットでBitbucketでは現存するDOMツリーを装飾したり、新しいDOMツリーを挿入するライフサイクルを実現しています。
### トップレベル(3):
File: backbone.js
// トップレベルの名前空間。Backboneのすべてのパブリックのクラスとモジュールはこれにアタッチされる。
### ネスト(3):
File: docs\FAQ.md
##ネストしたModelとCollection [原文](http://backbonejs.org/#FAQ-nested)
### バリデーション(3):
File: backbone.js
// バリデーションを実行する。
### パフォーマンス(3):
File: docs\Examples.md
[LinkedIn](http://www.linkedin.com/)は[次世代の HTML5 モバイルWebアプリ](http://www.linkedin.com/static?key=mobile)にBackbone.jsを利用しました。Backboneによってアプリのモジュール性、編成、拡張性を容易に維持することが出来たため、LinkedInのユーザー体験の複雑さをプログラムすることを可能としました。このアプリは[Zepto](http://zeptojs.com/)、[Underscore.js](https://gist.github.com/4285928)、[SASS](http://sass-lang.com/)、[iScroll](http://cubiq.org/iscroll)、HTML5 LocalStorageとcanvasも利用しています。技術チームはモバイルでのパフォーマンス改善について[LocalStorageを利用した体験談](http://engineering.linkedin.com/mobile/linkedin-ipad-using-local-storage-snappy-mobile-apps)をブログで紹介しています。
### パーツ(3):
File: backbone.js
// ルート文字列の名前つきパラメータや、
// 分割されたパーツをマッチングするための正規表現キャッシュ。
### フレームワーク(3):
File: docs\FAQ.md
##なぜ他のフレームワークでなく、Backboneを使うのか? [原文](http://backbonejs.org/#FAQ-why-backbone)
### プログラム(3):
File: docs\Examples.md
[LinkedIn](http://www.linkedin.com/)は[次世代の HTML5 モバイルWebアプリ](http://www.linkedin.com/static?key=mobile)にBackbone.jsを利用しました。Backboneによってアプリのモジュール性、編成、拡張性を容易に維持することが出来たため、LinkedInのユーザー体験の複雑さをプログラムすることを可能としました。このアプリは[Zepto](http://zeptojs.com/)、[Underscore.js](https://gist.github.com/4285928)、[SASS](http://sass-lang.com/)、[iScroll](http://cubiq.org/iscroll)、HTML5 LocalStorageとcanvasも利用しています。技術チームはモバイルでのパフォーマンス改善について[LocalStorageを利用した体験談](http://engineering.linkedin.com/mobile/linkedin-ipad-using-local-storage-snappy-mobile-apps)をブログで紹介しています。
### ペア(3):
File: backbone.js
//
// ペアになっている。`this`にプロパティをセットされてコールバックはビューに結びつく。
### ボタン(3):
File: docs\FAQ.md
+ 2way-bindingを敢えて備えていません。それは確かに、気の利いたデモができて、基本的なCRUD操作として動きますが、あなたのアプリケーションにおいて劇的に便利に使えることは現実的にありません。ときには`keypress`のたびにアップデートしたいでしょうし、`blur`のときにしたい、パネルを閉じたときにしたい、保存ボタンが押されたときにしたいと様々です。ほとんどのケースにおいて、フォームのデータをJSONに単純にシリアライズすることが速くて簡単です。さておき、使う用途がはっきりしているのであれば、[使えば](http://rivetsjs.com/)よい[でしょう](http://nytimes.github.com/backbone.stickit/)。
### マッピング(3):
File: docs\FAQ.md
+ Backbone.Collection – クライアントサイドにおけるModelのグループ。並び替え(sort)・フィルタリング(filtering)・集約(aggregation)のロジックを持つ。
+ Backbone.Router – Railsの`routes.rb`とControllerアクションにあたる。URLをfunctionにマッピングする。
### モード(3):
File: backbone.js
// *noConflict*モードでBackbone.jsを実行するとき、`Backbone`変数を以前のものに戻す。
### リソース(3):
File: docs\FAQ.md
**バッチ操作**はモデルにおいて一般的ですが、多くの場合はサーバーサイドの設計によって異なった制御を行うほうが理想的です。一部の人々はAjaxリクエストを個々に記述することを惜しみません。あるいは、`/notes/batch/destroy?ids=1,2,3,4` のようなRESTfulなバッチ操作のための明示的なリソースを作成します。他にも、JSONをトンネルにすることでRESTを実現し、次のようなチェンジセットとしてリクエストを作成することもあります。
### ループ(3):
File: backbone.js
// リストされたイベントとコンテキストをループして、
### レガシー(3):
File: docs\Examples.md
[USA Today](http://usatoday.com)はBackboneのデータ/モデルのライフサイクルのモジュール性を上手に利用しています。コードを扱いやすく、そして無駄のない形で維持するために、アプリケーションのオブジェクトをシンプルに作り、継承し、分離し、結びつけます。新しいウェブサイトではpushStateに対応したブラウザとレガシーなブラウザへのページ出力制御のためにBackbone Routerが多用されています。最後に、担当チームはBackbone's Eventの利点を用いて、サードパーティー作成のものや解析のパッケージをアプリケーションの心臓部にフックできるようにPubSub APIを作成しました。
### ローカル(3):
File: backbone.js
// slice/spliceのローカル参照を作成する。
### ー(3):
File: docs\View.md
BackboneのViewは、コードというよりはほとんど慣習に近い存在です ー ViewはHTMLやCSSについて何も決定付けることはなく、任意のJavaScriptテンプレーティングライブラリと合わせて使用できます。一般的なアイディアとしては、ページを全体を再描画せず、モデルが変更されたときにそれぞれが独立して更新できる、Modelに支えられたロジカルなViewとしてインターフェースを整理します。JSONオブジェクトを掘り、DOMの中にある要素を参照し、手動でHTMLを更新する代わりに、Viewの`render`関数をモデルの`"change"`イベントに結びつけることができます ー そうすると、UIの中のモデルデータを表示しているすべての箇所は、いつでも即座に最新になります。
### アイテム(4):
File: backbone.js
// 強制的にコレクションを自身で再ソートさせる。各アイテムが追加されるたび並び順のソート
### エミュレート(4):
File: backbone.js
// 古いサーバーは、リクエストをHTML-form形式にエンコードしてJSONをエミュレートする。
### カスタマイズ(4):
File: backbone.js
// リクエストのタイプと対象のモデルが渡される。デフォルトではModelの`url()`に対して
// RESTfulなAjaxリクエストを行う。いくつかのカスタマイズの可能性を次に示す。
### カスタムイベント(4):
File: backbone.js
// *あらゆるObject*とmixinできて、カスタムイベントを提供するモジュールです。
### カナ(4):
File: backbone.js
// bind - 結びつける: 主にイベントの文脈で使われる。boundも同様。
// attach, listen, lookup - アタッチ, リッスン, ルックアップ: カナ。
### クリア(4):
File: backbone.js
// モデルのすべての属性をクリアし、silentを選択しない限り`"change"`イベントを発火する。
### クロスブラウザ(4):
File: backbone.js
// URLフラグメントをベースとした、クロスブラウザな履歴管理を制御する。
### スペース(4):
File: backbone.js
// スペースによって分割された1つまたは複数のイベントとして`events`を`callback`関数に
### スラッシュ(4):
File: backbone.js
// 先行するハッシュとスラッシュを取り除く正規表現。
### セレクタ(4):
File: backbone.js
// ペアになっている。`this`にプロパティをセットされてコールバックはビューに結びつく。
// 効率性のためにイベントの委譲を使用している。セレクタを省略すると、`this.el`に
### チーム(4):
File: docs\Examples.md
[USA Today](http://usatoday.com)はBackboneのデータ/モデルのライフサイクルのモジュール性を上手に利用しています。コードを扱いやすく、そして無駄のない形で維持するために、アプリケーションのオブジェクトをシンプルに作り、継承し、分離し、結びつけます。新しいウェブサイトではpushStateに対応したブラウザとレガシーなブラウザへのページ出力制御のためにBackbone Routerが多用されています。最後に、担当チームはBackbone's Eventの利点を用いて、サードパーティー作成のものや解析のパッケージをアプリケーションの心臓部にフックできるようにPubSub APIを作成しました。
### テスト(4):
File: backbone.js
// `setDomLibrary`メソッドで、それらの代替になるJavaScriptライブラリを注入できる
// (またはブラウザ外でViewをテストするためのモックライブラリ)。
### データベース(4):
File: docs\FAQ.md
+ SQLデータベースの構造をそのまま反映する、またはNoSQLデータベースを構造化する
### ハッシュベース(4):
File: backbone.js
// またはハッシュベースのルートで開始したが、現在のブラウザは`pushState`ベースで
### バックエンド(4):
File: docs\Examples.md
[IRCCloud](http://irccloud.com/)はブラウザ内で利用できる常時接続に対応したIRCクライアントです − しばしば一日中開きっぱなしにされることもあります。洗練されたWebインターフェースはWebSocketsと[IRCCloud API](https://github.com/irccloud/irccloud-tools/wiki/API-Overview)を介してErlangのバックエンドと交信します。それはIRCの会話の流れがリアルタイムで維持されるようにBackbone.jsのEvents、Models、ViewsそしてRoutingが多用されています。
### バッチ(4):
File: backbone.js
//
// * `setTimeout`を使って、単一のリクエストによるバッチで迅速にアップデートする。
### パターン(4):
File: docs\FAQ.md
一般的にこれから始める人々にとって、このページに記載されている例は、ある種、唯一の真実のように映ります。実際には、Backbone.jsはクライアントサイドコードにおける多くの共通パターンに、大部分で依存していません。例えば...
### プロジェクト(4):
File: README.md
en.ja-ossプロジェクト内では以下の書式ガイドを設けています。
### プロトタイプ(4):
File: backbone.js
// すべての継承可能なメソッドをモデルのプロトタイプにアタッチする。
### プロトタイププロパティ(4):
File: backbone.js
// サブクラスのプロトタイプチェーンを正しく設定するヘルパ関数。`goog.inherits`に
// 似ているがプロトタイププロパティのハッシュを利用し、クラスプロパティを継承する。
### マッチング(4):
File: backbone.js
// ルート文字列の名前つきパラメータや、
// 分割されたパーツをマッチングするための正規表現キャッシュ。
### リアルタイム(4):
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### リッスン(4):
File: backbone.js
// bind - 結びつける: 主にイベントの文脈で使われる。boundも同様。
// attach, listen, lookup - アタッチ, リッスン, ルックアップ: カナ。
### ウィジェット(5):
File: docs\Examples.md
[Bitbucket](http://www.bitbucket.org/)はGitやMercurialの無料のソースコードホスティングサービスです。モデルとコレクションを通してBackbone.jsが、Bitbucketの[REST API](https://api.bitbucket.org/)はもちろん、新しいコンポーネントであるインラインでのコメントのコーディングやPull Requestの許可などにおいて有用であることを証明しています。
Mustacheテンプレートを用いてサーバーとクライアントサイドのレンダリングを行いつつ、カスタマイズした[Google クロージャー](https://developers.google.com/closure/library/)を用いたウィジェットでBitbucketでは現存するDOMツリーを装飾したり、新しいDOMツリーを挿入するライフサイクルを実現しています。
### コア(5):
File: backbone.js
// **render**は、適切なHTMLで要素 (`this.el`) を生成するために、
// 各自のビューがオーバーライドすべきコア関数である。
### シリアライズ(5):
File: docs\Collection.md
コレクション内のモデルそれぞれの属性のハッシュを含む配列を返します。これはコレクション全体をシリアライズと永続化する事ができます。このメソッドの名前は[JavaScriptのJSON API](https://developer.mozilla.org/en/JSON#toJSON\(\)_method)と一緒なので、若干区別が付きにくいです。
### シンプル(5):
File: backbone.js
// 属性が一致するモデルたちを返す。`filter`のシンプルなケースとして役に立つ。
### スタイル(5):
File: backbone.js
// `"key", value`と`{key: value}`の両スタイルの引数を制御する。
### トリガ(5): トリガー(18)
File: docs\Collection.md
モデルの追加や削除を一回毎に行なうのは結構な事ですが、時には固まりのコレクションのアップデートなど大量のモデルの変更をしたい場合があります。 **reset** を使うと新しいモデル(または属性のハッシュ)のリストをともなったコレクションに取り替え、最後に単一の`"reset"`イベントをトリガします。`"reset"`イベントを抑制するには`{silent: true}`を渡します。引数無しでリセットすると空のコレクションを作るのに便利です。
### ポーリング(5):
File: backbone.js
// URLフラグメントをベースとした、クロスブラウザな履歴管理を制御する。
// ブラウザが`onhashchange`をサポートしていなければ、ポーリングにフォールバックする。
### ラップ(5):
File: backbone.js
// フォールバックのエラーイベントと共にオプションのエラーコールバックをラップする。
### アップデート(6):
File: backbone.js
// サーバーサイドの保存が成功したあと、クライアントはサーバーサイドの状態に
// アップデートする(オプション)。
### インターフェース(6):
File: backbone.js
// `model`というパラメータと一緒に送信するようになる。**PHP**のように`PUT`リクエスト
// の本文を読み取るのが難しいサーバーサイドのインターフェースをとる場合に便利である。
### キャッシュ(6):
File: backbone.js
// ルート文字列の名前つきパラメータや、
// 分割されたパーツをマッチングするための正規表現キャッシュ。
### クライアントサイド(6):
File: docs\Examples.md
[Gilt Groupe](http://gilt.com/)はBackbone.jsを利用し、関連サイトを含む複数のアプリケーションの構築を行いました。[Giltの モバイルサイト](http://m.gilt.com/)では、Backboneと[Zepto.js](http://zeptojs.com/)を用いて、出先のユーザーに対して、超高速なショッピング体験を提供していて、[Gilt Live](http://live.gilt.com/)では顧客がリアルタイムに購入している商品をBackboneとWebSocketsを結合して表示しています。Giltの検索機能もBackboneを用いて、フィルターや商品の並び替えをクライアントサイドで行うことで効率的に行えるようにしています。
### ケース(6):
File: backbone.js
// コレクションのデフォルトのモデルは**Backbone.Model**である。ほとんどのケースでは
### コンテンツ(6):
File: README.md
##翻訳済みコンテンツ
### コンパレータ(6):
File: docs\Collection.md
### comparator `collection.comparator` [原文](http://backbonejs.org/#Collection-comparator)
デフォルトではコレクションに **comparator** 関数は存在しません。コンパレータを定義する場合、コレクションをソート済みの順番で保持する為に使用するでしょう。これはモデルが追加されると`collection.models`に正しいインデックスで挿入されるという事を意味します。コンパレータ関数は[sortBy](http://underscorejs.org/#sortBy)(単一の引数を取る関数を渡す)か、[sort](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort)(2つの引数を取るコンパレータ関数を渡す)によって定義されます。
### サイト(6):
File: docs\Examples.md
[Gilt Groupe](http://gilt.com/)はBackbone.jsを利用し、関連サイトを含む複数のアプリケーションの構築を行いました。[Giltの モバイルサイト](http://m.gilt.com/)では、Backboneと[Zepto.js](http://zeptojs.com/)を用いて、出先のユーザーに対して、超高速なショッピング体験を提供していて、[Gilt Live](http://live.gilt.com/)では顧客がリアルタイムに購入している商品をBackboneとWebSocketsを結合して表示しています。Giltの検索機能もBackboneを用いて、フィルターや商品の並び替えをクライアントサイドで行うことで効率的に行えるようにしています。
### マップ(6):
File: backbone.js
// ルーターは、フェイクURLをアクションにマップし、ルートが一致したときにイベントを発火
### エンコード(7):
File: backbone.js
// `emulateJSON`を有効にすると ... 代わりに`application/x-www-form-urlencoded`
// としてリクエストボディをエンコードし、`model`という名前のフォームパラメータとして、
### コピー(7):
File: backbone.js
// モデルの`attributes`オブジェクトのコピーを返す。
### バインド(7):
File: docs\Collection.md
Collectionはモデルを集合させたものです。コレクション内のモデルが変更された際に通知する`"change"`イベントをバインドする事もできますし、`"add"`や`"remove"`イベントで待ち受ける事もでき、サーバーからコレクションを`"fetch"`でき、[Underscore.jsメソッド](#Collection-Underscore-Methods)の全てのセットを使う事ができます。
### フェッチ(7):
File: backbone.js
// サーバーからモデルをフェッチする。サーバーが示すモデルが、現在の属性と異なるとき、
### フォールバック(7):
File: backbone.js
// URLフラグメントをベースとした、クロスブラウザな履歴管理を制御する。
// ブラウザが`onhashchange`をサポートしていなければ、ポーリングにフォールバックする。
### ルーティング(7):
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### ロード(7):
File: backbone.js
// 現在のURLフラグメントのロードを試みる。マッチしてルートが成功すれば`true`を返す。
### エラー(8):
File: backbone.js
// URLが必要であるのに提供されていないときにエラーを投げる。
### テンプレート(8):
File: backbone.js
// 少量のDOM要素のために本格的なテンプレートを必要としないとき、**make**を使って
### ドキュメント(8):
File: README.md
#Backboneドキュメント日本語訳
### バージョン(8):
File: backbone.js
// ライブラリの現在のバージョン。`package.json`と同じになるよう保つこと。
### プロキシ(8): プロキシー(2)、プロクシ(1)
File: backbone.js
// _のchainのプロキシ。Underscoreのコンストラクタに依存しているため、
### プロトタイプチェーン(8):
File: backbone.js
// プロトタイプチェーンの作成を助けるために、空のコンストラクタ関数を共有する。
### ユーザー(8): ユーザ(1)
File: backbone.js
// JSON `id`属性のデフォルト名は`"id"`。MongoDBやCounchDBのユーザーは、これを
### リンク(8):
File: backbone.js
// リストされたイベントとコンテキストをループして、
// リンクされたコールバックのリストから適切にそれらを取り除く。
### ルックアップ(8):
File: backbone.js
// bind - 結びつける: 主にイベントの文脈で使われる。boundも同様。
// attach, listen, lookup - アタッチ, リッスン, ルックアップ: カナ。
### ルーター(8):
File: backbone.js
// attach, listen, lookup - アタッチ, リッスン, ルックアップ: カナ。
// view, model, collection, router - ビュー、モデル、コレクション、ルーター: カナ。
### アクション(9):
File: backbone.js
// ルーターは、フェイクURLをアクションにマップし、ルートが一致したときにイベントを発火
### サブクラス(9):
File: backbone.js
// サブクラスのプロトタイプチェーンを正しく設定するヘルパ関数。`goog.inherits`に
### セットアップ(9):
File: backbone.js
// すべての**Backbone.Router**から継承されるプロパティとメソッドをセットアップする。
### チェック(9):
File: backbone.js
// `id`の変化をチェックする。
### モジュール(9):
File: backbone.js
// トップレベルの名前空間。Backboneのすべてのパブリックのクラスとモジュールはこれにアタッチされる。
### レンダリング(9):
File: docs\Examples.md
[New Rdio](http://rdio.com/new)はBackbone.jsをベースとしてコンポーネントベースフレームワークを使って一から作成されました。すべての画面上の構成要素は[Rdio API](http://developer.rdio.com/)で提供されたデータによってダイナミックにロードされ、レンダリングされます。変更がプッシュされるとすべての構成素は、ページのリロードやユーザーの音楽を中断することなく変更が反映できます。このすべてがBackboneのviewとmodelsに依存しており、また、すべてのURLのルーティングはBackboneのRouterで処理されます。リアルタイムにデーター変更の信号が送られた時、BackboneのEventsはデーター変更に関連した構成要素に通知します。Backboneは新しくてダイナミックでリアルタイムなRdioのWebおよびデスクトップアプリケーションの中核を構成しています。
### インスタンス(10):
File: backbone.js
// コレクションに新しいモデルのインスタンスを作成する。サーバーのレスポンスを待つよう
### インデックス(10):
File: backbone.js
// 追加されたモデルのイベントをリッスンし、`id`と`cid`でルックアップできるように
// インデックスを作成する。
### キー(10):
File: backbone.js
// `delegate`でキーを分割する正規表現。
### コード(11):
File: docs\Examples.md
[DocumentCloud workspace](http://www.documentcloud.org/public/#search/)はBackboneのモデルとコレクションとしてDocuments、Projects、Notes、そしてAccountsを利用して、Backbone.jsで作られています。もし、成り立ちに興味があるならば、Underscore.js と Backbone.jsは元々はDocumentCloudで使われていたコードを独立したJavaScriptのライブラリとして抽出したものであることを記しておきます。
### ソート(11):
File: backbone.js
// コレクションにモデルを挿入し、必要があれば再ソートし、silentでなければ
### ベース(11):
File: backbone.js
// URLフラグメントをベースとした、クロスブラウザな履歴管理を制御する。
### サーバーサイド(12):
File: backbone.js
// サーバーサイドの保存が成功したあと、クライアントはサーバーサイドの状態に
### アタッチ(13):
File: backbone.js
// bind - 結びつける: 主にイベントの文脈で使われる。boundも同様。
// attach, listen, lookup - アタッチ, リッスン, ルックアップ: カナ。
### クライアント(13):
File: backbone.js
// 定義済みの属性と共に新しいモデルを作成する。クライアントID (`cid`) は自動的に生成
### ライブラリ(13):
File: backbone.js
// ライブラリの現在のバージョン。`package.json`と同じになるよう保つこと。
### ロジック(13):
File: backbone.js
// 初期化はデフォルトで空の関数。自身の初期化ロジックでオーバーライドする。
### クラス(14):
File: backbone.js
// トップレベルの名前空間。Backboneのすべてのパブリックのクラスとモジュールはこれにアタッチされる。
### アプリ(15):
File: backbone.js
// おそらく一時的に、Backbone.historyを無効にする。実際のアプリでは使えないが、
### パラメータ(15): パラメーター(2)
File: backbone.js
// history - 履歴: 漢字。
// parameter, browser - パラメータ、ブラウザ: 末尾を長音にしない。
### コンストラクタ(16):
File: backbone.js
// _のchainのプロキシ。Underscoreのコンストラクタに依存しているため、
### リセット(16):
File: backbone.js
// 変更の追跡をリセットする。
### コール(17):
File: backbone.js
// DOM操作とAjaxコールのために使用されるJavaScriptライブラリをセットする(たとえば
### マッチ(17):
File: backbone.js
// 現在のURLフラグメントのロードを試みる。マッチしてルートが成功すれば`true`を返す。
### トリガー(18): トリガ(5)
File: backbone.js
// ひとつまたは複数のイベントをトリガーし、結びついたすべてのコールバックを発火する。
### アプリケーション(19):
File: docs\Collection.md
Railsアプリケーションでページの初期読み込みの間にコレクションのブートストラップに **reset** を使用する例を上げます。
### レスポンス(19):
File: backbone.js
// それが含まれるコレクションからは楽観的に削除を行う。
// もし`wait: true`が渡されていれば、削除する前にサーバーのレスポンスを待つ。
### サポート(20):
File: backbone.js
// 古いHTTPサーバーをサポートするために、`emulateHTTP`を有効にする。
### フラグメント(21):
File: backbone.js
// hash - ハッシュ: RubyのHashをイメージしていると思われる。ただしRouterの項では、
// URLフラグメントとしてのハッシュを主に指していることに注意。
### ページ(23):
File: backbone.js
// ハッシュ変更ベースの履歴のフォールバックを、明示的に望んでいなければ`navigate`は
// ページをリフレッシュする。
### サーバ(25): サーバー(48)
File: docs\Examples.md
Backboneの例としてリポジトリにバンドルされている[Todo List アプリケーション](examples/todos/index.html)は[Jérôme Gravel-Niquet](http://jgn.me/)が作成したものです。もしBackboneをどこから始めたらいいか迷っている場合は、ひととおり[注釈付きのソース](docs/todos.html)を読む時間をとってみましょう。このアプリケーションではサーバにブラウザ内のすべてのtodoに送らずに、[LocalStorageのアダプター](docs/backbone-localstorage.html)を利用して透過的に保存します。Jérômeは[localtodos.com](http://localtodos.com/)にjQueryの代わりに[MooToolsを利用したバージョン](http://github.com/jeromegn/backbone-mootools)も作成しています。
### リスト(26):
File: backbone.js
// リストされたイベントとコンテキストをループして、
### データ(27): データー(2)
File: backbone.js
// GETでないリクエストであればデータを処理しない。
### ブラウザ(32):
File: backbone.js
// history - 履歴: 漢字。
// parameter, browser - パラメータ、ブラウザ: 末尾を長音にしない。
### オーバーライド(33):
File: backbone.js
// 初期化はデフォルトで空の関数。自身の初期化ロジックでオーバーライドする。
### リクエスト(33):
File: backbone.js
// このオプションを設定すると、`_method`パラメータと`X-Http-Method-Override`
// ヘッダーを付与して、擬似的に`"PUT"`と`"DELETE"`をリクエストをする。
### ビュー(34):
File: backbone.js
// attach, listen, lookup - アタッチ, リッスン, ルックアップ: カナ。
// view, model, collection, router - ビュー、モデル、コレクション、ルーター: カナ。
### プロパティ(39):
File: backbone.js
// すべての**Backbone.Router**から継承されるプロパティとメソッドをセットアップする。
### セット(42):
File: backbone.js
// DOM操作とAjaxコールのために使用されるJavaScriptライブラリをセットする(たとえば
### オブジェクト(44):
File: backbone.js
// *noConflict*モードでBackbone.jsを実行するとき、`Backbone`変数を以前のものに戻す。
// そして、このBackboneオブジェクトの参照を返す。
### オプション(44):
File: backbone.js
// 古いHTTPサーバーをサポートするために、`emulateHTTP`を有効にする。
// このオプションを設定すると、`_method`パラメータと`X-Http-Method-Override`
### サーバー(48): サーバ(25)
File: backbone.js
// グローバルオブジェクトの参照を保存する(ブラウザでは`window`を指し、サーバー環境
### デフォルト(48):
File: backbone.js
// DOM操作とAjaxコールのために使用されるJavaScriptライブラリをセットする(たとえば
// `$`変数)。BackboneのデフォルトではjQuery、Zepto、Enderのいずれかを使用するが、
### ルート(57):
File: backbone.js
// ルーターは、フェイクURLをアクションにマップし、ルートが一致したときにイベントを発火
### メソッド(71):
File: backbone.js
// `$`変数)。BackboneのデフォルトではjQuery、Zepto、Enderのいずれかを使用するが、
// `setDomLibrary`メソッドで、それらの代替になるJavaScriptライブラリを注入できる
### ハッシュ(74):
File: backbone.js
// ※ 訳注メモ
// hash - ハッシュ: RubyのHashをイメージしていると思われる。ただしRouterの項では、
### コールバック(81):
File: backbone.js
// *あらゆるObject*とmixinできて、カスタムイベントを提供するモジュールです。
// あなたはイベントにコールバック関数を`on`で結びつけ、`off`で削除することができ、
### コレクション(116):
File: backbone.js
// attach, listen, lookup - アタッチ, リッスン, ルックアップ: カナ。
// view, model, collection, router - ビュー、モデル、コレクション、ルーター: カナ。
### イベント(169):
File: backbone.js
// attribute - 属性: Modelが表現する値のフィールドを指して属性と言う。
// bind - 結びつける: 主にイベントの文脈で使われる。boundも同様。
### モデル(272):
File: backbone.js
// attach, listen, lookup - アタッチ, リッスン, ルックアップ: カナ。
// view, model, collection, router - ビュー、モデル、コレクション、ルーター: カナ。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment