2012-04-09 3 views
22

私は様々なRIAを見ていて、何人かの人に気づいたり、使用したりしています。JavaScript Routing。ちょうどそれをスキミングして、 'JavaScript Routing'はあなたのサイトを横断する方法のように見えますが、そのための簡単なリンクを使用することができます。それは私が絶対に「それを手に入れない」ことを意味します。JavaScript Routingは何を購入していますか?

だから...ルーティングは、通常のアンカーまたはリンクがないことを

  • 何を提供していますか?
  • 特定の環境でのみ適切ですか? (つまり、ASP.NETまたはストレートHTML)
  • これは何のためですか?
  • どのような目的がその存在を推進していますか?
+0

優秀な表現。 – orbfish

答えて

47

ルーティングは、アプリケーションの状態を整理して管理する方法です。 JavaScriptのルーティングフレームワークを使用すると、アプリケーションの永続性を維持しながら、アプリケーションの状態を1つの管理パネルセクションから別の管理パネルセクションに変更することができます

1つのアプリケーション状態からナビゲートする場合は、別のもの、例えば、 /admin/ordersのように、通常のリンクを使用することもできます。しかし、ブラウザをあるHTMLページから別のHTMLページに移動させることになります。これは、明らかに、Webをナビゲートする通常の方法です。しかし、JavaScriptアプリケーションでは、これはかなり非効率的です!

JavaScriptで複雑なブラウザ内アプリケーションを実行している場合、そのアプリケーションは起動時に多くの作業を行う必要があります。イベントハンドラを登録し、一束のJavaScriptをロードして実行し、ページインターフェイスを動的にレンダリングすることがあります(ExtJSや他のいくつかのライブラリの場合)。これは、ブラウザが/admin/ordersにあるJavaScriptアプリケーションを設定するための多くの追加作業であり、その1つは/admin/usersのものと共通しています。より効率的な方法は、リンクがアプリケーションが監視するイベントを起動し、アプリケーションの状態を変更することによってアプリケーションが応答するようにすることです。ユーザービューを削除または隠し、オーダービューに置き換えるなどです。ルーティングは、トークン(通常は/admin/usersのようなURLフラグメント)を使用して、これらのさまざまなインターフェイスを表現する方法で、ユーザーが自分のインターフェイスにどこにいるかを追跡します。

これにより、アプリケーションは、既に焼き付けられた時間とメモリを使用して作成された動的オブジェクトモデルを維持することができます。ハッシュタグやプッシュステートを使用してURL履歴管理を使用している場合は、ユーザーがブラウザの前後のボタンを使用してアプリの周りをナビゲートすることができます。毎回ページを開き、アプリケーションの状態を消去します。 URL管理では、アプリケーションの一部のページに深くリンクすることもできます。ロード時に、アプリケーションのルータは受信したルート文字列を調べ、トークン化し、ルーティングテーブルで指定したインターフェイスを読み込みます。

ルーティングはないが永続性を管理するためにが必要ですが、それはあなたの永続的な状態を整理するための良い方法です。多くの場合、ルーティングシステムはDavis.jsのようなURL履歴管理と連携して動作します。しかし、URIを混乱させることのないルーティングライブラリもあります。これは、​​のように、使用するか表示することができる抽象的なトークン化状態を維持します。

+0

WOW!私は今それを完全に得る! –

+0

これは、明らかに、これはASP.NET MVCやSharePointアプリケーションでは使用されません...そうですか? –

+1

SharePoint、おそらくそうではありません。 SharePointは独自のマークアップを管理しているため、この種のフロントエンドに焦点を当てた作業はしません。 ASP.NET MVCは、JavaScriptを使用するRIAのサーバー側テクノロジとして使用される可能性があるため、その答えは多分です。重要な問題は、単一ページのJavaScriptアプリケーションを実行しているかどうかです。 – zetlen

関連する問題