この記事では、URL は存続期間が長い (ブックマークされて渡される) ため、意味のあるものである必要があり、実際のルーティング (ページに表示されるデータや状態を決定する) にはハッシュを使用するというかなり説得力のある議論を行っています。したがって、アプリケーションの) は不適切です。しかし、シングルページ アプリケーションで実際にこれを実行しようとすると、問題に直面します。すべてのブラウザーがアプリケーションを使用できるようにするには、リンクをどのように表示すればよいでしょうか? 私が見たように、3つのオプションがあります:
- すべて
href
の には#/
接頭辞があります。これは、HTML4 ブラウザーでうまく機能します。HTML5 ブラウザーでは、ハッシュのないバージョンにリダイレクトするSammyルートを追加できますが、これもうまく機能します。ブラウザーがリンクを訪問していないときに訪問済みとしてマークしたり、訪問済みのときに訪問済みとしてマークしたりしないという問題がある可能性があります。他の問題は、それが...間違っているということです。リンクを右クリックして [リンク URL をコピー] を選択することでリンクを共有する人は、機能しているが扱いにくい URL を送信することになります。 - no
href
には#/
接頭辞がありません。私が知る限り、HTML4 ブラウザにはこれらのリンク クリックを傍受する方法がありません。つまり、クリックごとにページが更新されます。アプリケーションはおそらくまだ機能しますが、Sammy ルートを使用して、ページの読み込み時にハッシュのないバージョンをハッシュのあるバージョンに書き換えることができるため、ページの読み込みによって単一ページ アプリケーションのパフォーマンスが低下します。 - プレフィックスを付けるかどうかを動的に決定します
#/
。これは、すべてのリンクに動的マークアップが必要であり、アプリケーションが非常に複雑になることを意味します。