25

私はさまざまなRIAを調べており、JavaScriptルーティングを使用または要求している人がいることに気づきました。「JavaScriptルーティング」は、サイトをトラバースする方法のように見えますが、そのための簡単なリンクを使用できます。つまり、私は絶対に「それを取得しない」ことを意味します。

それで...

  • ルーティングは、通常のアンカーまたはリンクが提供しないものを提供しますか?
  • 特定の環境でのみ適切ですか?(つまり、ASP.NETまたはストレートHTML)
  • それはなんのためですか?
  • その存在を推進する目的は何ですか?
4

1 に答える 1

56

ルーティングは、アプリケーションの状態を整理および管理する方法です。JavaScript のルーティング フレームワークは、アプリケーションの永続性を維持しながら、アプリケーションの状態を変更するのに役立ちます。たとえば、ある管理パネル セクションから別の管理パネル セクションに移動することができます。

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

JavaScript で複雑なブラウザー内アプリケーションを実行している場合、そのアプリは起動時に多くの作業を行う必要があります。イベント ハンドラーを登録し、一連の JavaScript を読み込んで実行し、場合によってはページ インターフェイス全体を動的にレンダリングします (ExtJS や他のいくつかのライブラリの場合)。/admin/ordersにある JavaScript アプリケーションと多くの共通点を持つJavaScript アプリケーションを にセットアップするのは、ブラウザにとって余分な作業です/admin/users。より効率的な方法は、リンクがアプリケーションが監視するイベントを発生させ、アプリケーションがアプリケーションの状態を変更することによって応答することです。おそらく、ユーザー ビューを削除または非表示にして、それを注文ビューに置き換えることによってです。ルーティングは、トークン (通常は次のような URL フラグメント) を使用して、これらのさまざまなインターフェイスを表す方法です。/admin/users-- ユーザーがインターフェイスのどこにいるかを追跡します。

これにより、アプリケーションは、作成に時間とメモリを消費した動的オブジェクト モデルを維持できます。これにより、ユーザー インターフェイスの応答がより速くなり、ハッシュタグまたは pushState を介して URL 履歴管理を使用している場合、ユーザーはブラウザーの [戻る] ボタンと [進む] ボタンを使用してアプリ内を移動できます。毎回ページを開き、アプリケーションの状態を消去します。URL 管理では、アプリケーション内の一部のページへのディープ リンクも可能です。ロード時に、アプリのルーターは、受信したルート文字列を調べてトークン化し、ルーティング テーブルで指定したインターフェイスをロードします。

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

于 2012-04-09T16:13:28.887 に答える