web-dev-qa-db-ja.com

戻るボタンはユーザーの古い状態を示します

QAにより、Webアプリケーションに次のバグが見つかりました。

  1. スプロケット一覧へ
  2. 新しいスプロケットを作成する
  3. 戻るボタンをクリックします

結果:表示されているスプロケットのリストには、作成されたばかりのスプロケットは含まれていません。

その理由は、ブラウザーがスプロケットが表示される前のバージョンのページをキャッシュしているためです。直感的には、これは使い勝手が悪いように感じられます。解決策は ブラウザーキャッシュを無効にする であり、ページが常に表示される現在の状態ですが、デフォルトのブラウザの動作をオーバーライドするのをためらっています。

古い状態がユーザーに表示されないようにするために、Webアプリケーションはブラウザーの戻るボタンのキャッシュをオーバーライドする必要がありますか?

13
Justin

UXの観点からは、システムの現在の状態を常にユーザーに示す必要があることは間違いありません。そうでない場合、ユーザーは自分のアクションが本当に実行された/記録されたものは、悪いことからのみ派生することができます。 (ユーザーがシステムを信頼せず、怒り、アクションをやり直して、データが重複していて時間を失ったことを発見したなど)。

これを行わない唯一の理由は、これに対する技術的な変更の結果が、より大きなUXの問題にしか導き出せない場合です(そうではない可能性があります)。

ところで、ブラウザの動作をオーバーライドすることは本当に必要ですか?ロードされたバージョンが最後のバージョンであるかどうかをチェックし、リロードをトリガーしない場合は、「フラグ」といくつかのJavaScriptコードで十分ではありませんか?
関連: [戻る]ボタンをクリックしたときにページを更新する方法

Onloadイベントは、ユーザーが戻るボタンを押したときに発生します。
JavaScriptを使用せずに作成された要素は、その値を保持します。

18

現在直面している問題は、QAチームがマルチページアプリケーション(MPA)の設計からシングルページアプリケーション(SPA)の動作を期待している(実際にはどのように聞こえる)かという事実によって引き起こされます。

「戻る」ボタンの動作を変更することについて質問するのは正しいことです。ユーザーがMPAを介して「進む」ときにページがリロードされると、そのページとそのページは「過去」であると予想されるためです。そして、このように動作する多くのメジャーなWebサイトが世の中に存在します。

これで、その動作を変更できます(1-サイト全体のデザインに応じて、2-標準のブラウザ動作の変更に伴うすべての潜在的な問題に対処することを前提としています)。これは、ユーザーの期待に劇的な影響を与えることはありません。しかし、MPAの設計について私が正しいと仮定すると、標準のMPAパターン/経験に反することになります。

いくつかの代替オプションは次のとおりです。

  1. 新しいスプロケットが追加されたことの確認の一部として、前のページの更新されたビューにユーザーを自動的に移動(転送)します。これにより、適切に追加されたことがわかり、古いバージョンに戻したい可能性が低くなります。

  2. アプリケーションをSPA設計に更新することを検討してください。要件がそのようにプッシュされ始めている場合は、これはおそらくアプリケーション設計のオーバーホールに大きな取り組みですが、SPAの動作をMPA設計に改造しようとするよりも、再設計を行う方がはるかに優れています。

4
talemyn