ベストプラクティス:ブラウザと Web サイトのナビゲーションの同時実行を処理する方法

StackOverflow https://stackoverflow.com/questions/77645

  •  09-06-2019
  •  | 
  •  

質問

これはすべての Web 開発者にとってよく知られた問題です。この問題に対する良い解決策を見つけようとした限り、何もありませんでした (または少なくとも私は見つけることができませんでした)。

次のことを仮定してみましょう。

ユーザーは期待どおりに動作しません。 私が取り組んでいる実際のプロジェクトでは、Web ポータル内のナビゲーションを使用しています。しかし、ユーザーがブラウザの戻るボタンを使用すると、すべてが危険になり[?]、結果は必ずしも予測可能ではありませんでした。

Struts フレームワークを使用し、バック URL をフォームに保存しました。バック URL が必要な場所では、このフォームのバック URL がレンダリングされています。この情報のフィールドは 1 つしかないため、複数のステップを戻すことはできませんでした。

「struts-flow」を変更すると、 違う形 - この情報は失われます。

ユーザーが敢えて ブックマーク Web アプリ内のどこか - この情報は設定されていない可能性があり、結果は再び予測不能になるか、柔軟性が不十分になります。

私の「解決策」:

ユーザーが訪問したすべてのナビゲーション関連ページを 積み重ねのような へのストレージ セッション. 。これは、ナビゲーション パスが収集され、後のナビゲーションのために保存されることを意味します。

Web アプリ内のどのページでも、戻るナビゲーションが含まれる場合は、スタック コンテンツを URL にレンダリングする自作のタグを使用しました。

以上です。このバック URL がクリックされると、ユーザーがクリックしたバック URL のコンテンツがスタックに書き込まれます (バックリンクがレンダリングされると、スタックからのすべての情報が保持されます)。

これは非常に明白です。なぜなら、リンクのクリックは明確な状態であり、Web 開発者は、ユーザーが今この瞬間どこに「いる」かを正確に知っており、ユーザーが以前に行ったこと (例:ブラウザの戻るボタンを複数回押します)。次に、ナビゲーション スタックがこの新しい状態に基づいて構築されます。

再開する:これが最善の解決策ではないことは明らかです。ただし、ページ パラメーターやその他の便利なもの (さらなる開発が可能) などの追加情報をスタックに保存することができます。

それで、この問題に対するあなたの解決策は何でしたか?

乾杯、

マナ

役に立ちましたか?

解決

スタック ソリューションは面白そうですが、ユーザーが別のタブやブックマークを使用して「並行して」移動することを選択した場合、おそらく機能しなくなるでしょう。

申し訳ありませんが、なぜ各ユーザーに対してこのすべての状態を保持する必要があるのか​​、本当に理解できません。理想的には、ウェブは以下に従うべきです REST原則 そして完全に無国籍になる。したがって、各ユーザーのナビゲーション履歴を保持することなく、単一の URL で単一のリソースを識別する必要があります。

Web アプリが AJAX に大きく依存している場合は、インターフェースの各変更がページ URL の変更に反映される GMail のようなものを実装してみることもできます (確かに、それほど簡単ではありません...)。したがって、各ページは現在の URL によって識別され、ユーザーは通常どおり同時に移動したり、戻るボタンを使用したりできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top