これは、すべての Web 開発者にとってよく知られた問題です。この問題に対する適切な解決策を見つけようとした限り、何もありませんでした (または、少なくとも見つけることができませんでした)。
次のように仮定します。
ユーザーが期待どおりに行動しない。私が取り組んでいる実際のプロジェクトでは、Web ポータル内のナビゲーションを使用しています。しかし、ユーザーがブラウザの戻るボタンを使用すると、すべてが危険にさらされ[?]、結果は常に予測可能ではありませんでした。
Struts フレームワークを使用し、back-url をフォームに保存しました。back-url が必要な場所では、このフォームの back-url からレンダリングされています。この情報には 1 つのフィールドしかないため、複数のステップに戻ることはできませんでした。
「struts-flow」を変更すると (別のフォームが使用される可能性があります)、この情報は失われます。
ユーザーがあえてWeb アプリケーション内のどこかにブックマークを設定した場合、この情報は設定されていない可能性があり、結果は予測不能であるか、十分に柔軟ではありません。
私の「解決策」:
ユーザーがアクセスしたすべてのナビゲーション関連ページをスタックのようなストレージに保存していました。これは、ナビゲーション パスが収集され、後のナビゲーションのために保存されることを意味します。
バック ナビゲーションが関係する webapp 内の任意のページで、スタック コンテンツを URL にレンダリングする自作のタグを使用しました。
それだけです。このバック URL がクリックされると、ユーザーがクリックしたバック URL のコンテンツがスタックに格納されます (バック リンクがレンダリングされると、スタックからのすべての情報が保持されます)。
これは非常に明確です。なぜなら、リンクのクリックは明確な状態であり、Web 開発者はユーザーが今この瞬間にどこに「いる」かを正確に知っているからです。回)。次に、この新しい状態に基づいてナビゲーション スタックが構築されます。
履歴書: これが最善の解決策ではないことが明らかになりました。ただし、ページパラメーターやその他の便利なものなどの追加情報をスタックに保存できます (さらなる開発が可能です)。
では、この問題に対するあなたの解決策は何でしたか?
乾杯、
マナ