Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
30 lines (18 sloc) 3.53 KB

Backbone.history 原文

History は(フレームごとに)グローバルなルーターとしてサービスを提供し、hashcange イベントや pushState を処理して、適切なルートに一致させ、コールバックをトリガします。あなたはこれらのうちひとつも自作する必要はなく -- Router を ruoutes とともに使うとき作られる、 Backbone.history への参照を使うべきです。

pushState のサポートは Backbone 内で、純粋にオプトインを基本として存在します。pushState をサポートしていない古いブラウザでは、ハッシュベースのURLフラグメントを使い続けますが、もし pushState 対応ブラウザでハッシュURLに訪れている場合、それは透過的に本当のURLにアップグレードされます。本当のURL群を使うことで、ウェブサーバは正しくそれらのページをレンダリングできなければならず、そのため、バックエンドの変更も必要になります。例えば、/documents/100 へのルートがある場合、ブラウザでそのURLに直接訪問したら、ウェブサーバはそのページを提供できなければなりません。サーチエンジンが完全にクロールできるようにするには、サーバに完全なページのHTMLを生成させるのが最善です … が、ウェブアプリケーションの場合は、ルートURL用のものと同じ内容だけをレンダリングし、あとはBackboneのビューと JavaScriptがうまく動いて残りを埋めます。

start Backbone.history.start([options]) 原文

Routerがすべて作成され、すべてのルートが適切にセットアップされたら、Backbone.history.start() を呼び出して、hashchange イベントの監視と、ルートのディスパッチを開始します。

あなたのアプリケーションでHTML5の pushState サポートを使いたいということを示すには、Backbone.history.start({pushState: true}) を使ってください。

もしあなたのアプリケーションがドメインのルートURL / で提供されていない場合、ルートが本当はどこにあるのかを、かならず、このようなオプションでHistoryに教えてください: Backbone.history.start({pushState: true, root: "/public/search/"})

呼び出されたとき、もし現在のURLにうまくマッチするルートがあれば、Backbone.history.start()true を返します。もし現在のURLにマッチするルートが定義されていなければ false を返します。

サーバがすでにページ全体をレンダリングしていて、Historyを開始するとき初期ルートはトリガーしないで欲しいときは、silent: true を渡します。

Internet Explorer ではハッシュベースの履歴が <iframe> に依存しているので、かならずDOMが準備できた後でのみ、start() を呼び出すようにしてください。

$(function(){
  new WorkspaceRouter();
  new HelpPaneRouter();
  Backbone.history.start({pushState: true});
});