6

どちらの方がよいですか?フラグメント識別子を使用しています...

http://www.alinkthatdoesnotwork.com/#!/dir1/dir2/file.html

...それとも新しい Javascript History API ですか?

https://github.com/examplethatdoesnotwork/project/src/script.js

または、両方を使用する必要がありますか?(フォールバック経由)

側面:

  • 互換性/サポート
  • スピード
  • 快適
4

5 に答える 5

3

ハッシュタグは、Twitter のコンテンツを分類するための手段であり、フラグメント識別子を意味します。

フラグメント識別子を使用して、Ajax を介してロードするコンテンツを示すことは、ひどい考えです。それらは壊れやすく、検索エンジンに優しくないハックであり (両側でより多くのハックがあることを除いて)、JavaScript に依存しています

history API は、実際にその作業を行うように設計された堅牢なシステムです。唯一の問題はブラウザーのサポートですが、(フラグメント識別子のアプローチとは異なり) サーバーに直接渡される実際の URI に適切に分解されます (これはGithub が行うことです)。

Twitter でさえ履歴 API に切り替えようとしているようです。

于 2012-02-23T06:55:03.167 に答える
1

新しい履歴メソッドは、AJAXナビゲーションに非常に役立ちます。たとえば、pushStateまたはreplaceStateを使用すると、ブラウザのアドレスバーを更新して、ユーザーが醜いハッシュタグ付きのものではなく、クリーンなURLを表示できるようにすることができます。

ただし、ご存知のとおり、新しいAPIのサポートはまだ制限されています。location.hashは、この時点ではるかに広くサポートされています。つまり、新しいwindow.historyのものを利用できないブラウザーのハッシュフォールバックを作成する必要があります。

于 2012-02-23T07:00:52.643 に答える
1

history API は、それをサポートしていないブラウザーで通常のリンクが正常に機能する限り、非常に望ましいものです。

History.jsなどのライブラリを使用して、これらのブラウザーで有効にすることができます。

詳細はこちら:ハッシュバンについて、ハッシュバン URLの副作用.

一言で言えば、URL は重要です。URL は永遠です。クールな URL は変わりません。

于 2012-02-23T06:51:15.690 に答える
0

問題はサポートとは何かだと思います。IE ではサポートされていないため、現時点では History API のみを使用することはできません。GitHub のようなフォールバック ソリューションが必要になります。

于 2012-02-23T06:53:29.287 に答える
0

最初の基準として「互換性」を挙げました。history APIはまだすべての主要ベンダー(Microsoft のことです) でサポートされていないため、最新のリリース (IE9 にはありません) でさえサポートされていないため、ほとんどの場合、ハッシュ。(これは残念ですが、あります。) また、Microsoft だけではなく、多くのモバイル デバイスがモバイル ブラウザーの 1 つまたは 2 つのバージョンを使用しているため、まだそれを持っていません。

于 2012-02-23T06:55:19.343 に答える