私はhistory.pushState()
を使用するページを作成しています。これはhtml5ブラウザーでのみサポートされています。したがって、古いブラウザのユーザーは別の体験をする必要がありますか?ここに私が考えることができる2つのオプションがあります:
/blah/
のボタンを押すと(一部のjsが発生します)、pushState
to /blah/page2/
を取得します/blah/
のボタンを押すと(一部のjsが発生します)、/blah/#page2/
のハッシュを取得します/blah/
のボタンを押すと(一部のjsが発生します)、pushState
to /blah/page2/
を取得します/blah/
のボタンを押すと(いくつかのjsが発生します)、彼はlocation.href = /blah/page2/
のjsコマンドを取得します最初の方法の利点は、IE6ユーザーがページロードを必要としないことです。また、重いPHPものをそのままにしておくことができるため、プログラムが簡単です。2番目の方法の利点は、 URLは常に一貫しているように見えます。
どちらのテクニックが良いですか?
これを行う別の方法もありますか?
私が主張するのは–ユーザーが本当に技術に精通している場合(つまり、おそらくIE6を使用していないことを意味します)でない限り、URLは彼らにとって重要ではありません。したがって、アプローチ#1は完全に問題ないはずです。
ここでUXの観点から本当に重要な唯一のことは、リンクのブックマーク機能です。
したがって、バディにhttp://yourdomain.com/blah/page2/
またはhttp://yourdomain.com/blah/#page2/
へのリンクを送信しても、一貫したアプリケーション状態になるはずです。リンクをコピーしたときと同じアプリケーション状態であることが望ましいです。
tl; dr: URLの整合性visualの一貫性について心配する必要はありませんstate一貫性は、どのバリアントが使用されても関係ありません。
私は間違いなく永続的なURLに行きますが、最後に重要なことは、ユーザーがURLの記述方法に関係なく、URLを介して適切なページにリダイレクトされることです。ユーザーはとにかくURLを見ることができません、それは彼にとって適切なページを持つことだけが重要です!申し訳ありませんが、IEと他のブラウザの両方を既にカバーしているため、他の方法は表示されません。