0

現在、backbone.js を使用してシングル ページ アプリを構築しています。

すべてのアプリケーション ページへのアクセスとクロールを維持するために、直接アクセスしたときにサーバー側でもページをレンダリングできるようにしました。

問題は次のとおりです: pushState が利用できない場合、現在の URL を使用してルーターを開始します (たとえば、http ://example.com/example の URL にアクセスすると、ルーターはその URL の上にハッシュ フラグメントを構築します) 。

そう:

  1. これを処理する方法はありますか (使用をリダイレクトする以外に)
  2. JS (pushState 機能検出を使用) と同じようにリダイレクトしている場合でも、URL にハッシュ記号がないという問題があります。

一般的に、この種のアプリケーションを設計するためのより良いアプローチはありますか?

ありがとう!

4

1 に答える 1

2

SEO フレンドリーなブラウジングが重要な場合、進化するコンセンサスはプッシュ状態かゼロ (つまり、Web 1.0 を劣化させ、ハッシュバン ルーティングをすべて削除する) であると思います。

私が Backbone.js を使用せず、PJAX のみを使用する理由の 1 つは pushstate と DOM のレンダリング時間が非常に優れているため、JS をほとんど使用せずに 1 つのページにすることができ、hash-bang ルーティングは常にかなりハックであるということです。

したがって、オプションは、Backbone のルーターをすべて一緒に使用せず、PJAX (または DJAX または類似のもの) のようなものにルーティング作業を行わせ、Backbone に内部ページ イベント/レンダリング (つまり、フォームの検証、モーダル ウィンドウなど) だけを行わせることです。 .)。

于 2013-01-21T15:15:12.523 に答える