web-dev-qa-db-ja.com

すべてのブラウザで同じエクスペリエンスを共有する必要がありますか?

私はhistory.pushState()を使用するページを作成しています。これはhtml5ブラウザーでのみサポートされています。したがって、古いブラウザのユーザーは別の体験をする必要がありますか?ここに私が考えることができる2つのオプションがあります:

  • html5_userが/blah/のボタンを押すと(一部のjsが発生します)、pushState to /blah/page2/を取得します
  • IE6_userが/blah/のボタンを押すと(一部のjsが発生します)、/blah/#page2/のハッシュを取得します

  • html5_userが/blah/のボタンを押すと(一部のjsが発生します)、pushState to /blah/page2/を取得します
  • IE6_userが/blah/のボタンを押すと(いくつかのjsが発生します)、彼はlocation.href = /blah/page2/のjsコマンドを取得します

最初の方法の利点は、IE6ユーザーがページロードを必要としないことです。また、重いPHPものをそのままにしておくことができるため、プログラムが簡単です。2番目の方法の利点は、 URLは常に一貫しているように見えます。

どちらのテクニックが良いですか?

これを行う別の方法もありますか?

6
qwertymk

私が主張するのは–ユーザーが本当に技術に精通している場合(つまり、おそらくIE6を使用していないことを意味します)でない限り、URLは彼らにとって重要ではありません。したがって、アプローチ#1は完全に問題ないはずです。

ここでUXの観点から本当に重要な唯一のことは、リンクのブックマーク機能です。

したがって、バディにhttp://yourdomain.com/blah/page2/またはhttp://yourdomain.com/blah/#page2/へのリンクを送信しても、一貫したアプリケーション状態になるはずです。リンクをコピーしたときと同じアプリケーション状態であることが望ましいです。

tl; dr: URLの整合性visualの一貫性について心配する必要はありませんstate一貫性は、どのバリアントが使用されても関係ありません。

2
vzwick

私は間違いなく永続的なURLに行きますが、最後に重要なことは、ユーザーがURLの記述方法に関係なく、URLを介して適切なページにリダイレクトされることです。ユーザーはとにかくURLを見ることができません、それは彼にとって適切なページを持つことだけが重要です!申し訳ありませんが、IEと他のブラウザの両方を既にカバーしているため、他の方法は表示されません。

0
sree