2

YahooのYUIやGoogleのGWTなど、多くのクライアント側のコードライブラリとツールキットは、ユーザーエクスペリエンスの状態履歴の管理をサポートしています。実装すると、ユーザーは[戻る]ボタンまたは[Backspace]キーをクリックすると、同じページで以前のアプリの状態に戻ることができます。

Google IOのこのビデオでは、このタイプの履歴管理の実装が強く推奨されており、実際にはリッチWebアプリの一部であると想定されています。

私はそのようなアプローチに価値があると思いますが、それが平均的なユーザーの期待を本当にサポートしているとは確信していません。StackOverflowでこの質問を調査したところ、「戻る」機能をオーバーライドすることの悪について多くの人からの怒りが見つかりました。このアプローチはそのカテゴリに分類されると主張できませんでしたか?

個人的には、「戻る」がページの状態を変更しただけで、本当に欲しかったのは最後の閲覧場所に戻ることだったので、何度もイライラしていました。 私の使用法では、Backの99%のユースケースは状態の変更ではなく、ページの変更です。

最後に、私の本当の質問は、「戻る」をオーバーライドせずに、リッチWebアプリの履歴管理をどのようにサポートできるかということです。

編集(ベストプラクティスのまとめ):

  • Michaelのブログ投稿を読んだ後、リンク以外のユーザーコントロール(ドロップダウン、テキストフィールドなど)を元に戻すには、Control-Zやボタン(広くサポートされているUIパターン)に依存することを考えています。

  • Backは、リッチWebアプリが提供する最も粗いビューの変更を元に戻す必要があります。ナビゲーションツリーのブランチを1つだけ記憶することで、ブラウザの履歴をエミュレートする必要があります。繰り返すと、常にルートに移動し、最後にアクセスしたページに移動します。

4

4 に答える 4

2

戻るは、リンクによって行われたナビゲーションを逆にする必要があり、それ以外は何もしません。ユーザーは Back とリンクをナビゲーションに結びつけるので、すべてのリンクがユーザーにとってリンクのように見える限り、リンクから Backing への移行は自然なことです。

具体的には、私が考える唯一の良い解決策は、Back がユーザーをブラウザーのページ全体に戻すことです。つまり、シック クライアント アプリでの [戻る] を [閉じる] または [キャンセル] (または別のウィンドウをクリックするだけ) のように扱います。これは私の最初の段落と一致しています。なぜなら、ユーザーは通常、リンクがページ全体をナビゲートすることを期待しているからです。したがって、バックもそうすべきです。

リッチ アプリでは、小さな入力ごとに Back を逆にすることはできません。これは、ユーザーが直前に表示していたページを表示することが非常に面倒になるためです。さらに悪いことに、以前に表示されたページを表示するために、ユーザーが現在のページを設定するすべての作業 (テキスト ボックスやコンボ ボックスに入力することさえ) を元に戻す必要があることを意味します。

ページ内の任意の大きな変更 (タブの選択など) を元に戻すことはできません。ユーザーはいつ戻るかを予測できません。彼らが望んでいたよりもはるかに元に戻る可能性があるため、彼らは恐れるでしょう.

Web アプリが必要とするのは、Back や History の再定義ではなく、ページ内のユーザー入力を処理するために、独自の Undo バッファーを備えた完全に独立した Undo 関数です。

私はhttp://www.zuschlogin.com/?p=41ですべての悲惨な詳細を持っています

于 2009-12-15T22:18:26.763 に答える
1

戻るアプリケーションの状態によって異なります。たとえば、Gmail では、メッセージから受信トレイに移動したときに、 back でメッセージに戻るのは非常に理にかなっています。ajax 以外の Web メールでは、これは当然のことです。

しかし、受信トレイ内のメッセージに対して行ったすべての選択および選択解除アクションをもう一度クリックすると、すぐに煩わしくなります。そのため、履歴管理は、ページの状態の変化がそれを正当化するのに十分な大きさである場合に使用する必要がありますが、変更されたのがページの小さな部分にすぎない場合は使用しないでください。

于 2009-12-15T17:44:14.247 に答える
0

私の意見では、ページの履歴とアプリケーションの状態の履歴はまったく別のものです。したがって、2 つの長椅子があります。 1. アプリケーションを Web サイトとして扱います。この場合、Back (および Forward も) はプレーンな html で記述されているかのように機能する必要があります。rjmunroが述べたようにgmailが行うように。2. アプリケーションをアプリケーション (1 ページ) として扱います。この場合、[戻る] ボタンをクリックすると、アプリケーションを開始する前のページに移動します。それがあなたの99%ですよね?

BWT、バックスペースは最も厄介なものです。

于 2009-12-15T19:52:22.957 に答える