2011-06-28 9 views
0

フォームが提出されたときの良いデザインの解決策は、「戻る」と「進む」ブラウザボタンの動作でなければなりません。 同様の質問は、ユーザーがアプリケーションをログアウトしてから「進む」ブラウザボタンをクリックするとどうなるでしょうか?送信ボタン+ GWT履歴

私は上記の状況についていくつかのシナリオを聞いてうれしいです。

ありがとうございました。

編集 -

私の個人的な意見は、ユーザーがログインページを経由せずにアプリケーションを入力することができませんする必要があり、ログアウトした後である:-)共有することが良いと私の視点なければなりません。 送信シナリオでは、送信されたブラウザのボタンの後に、ユーザーはフォームに戻ることができますが、NOを含むデータは返されます。

+0

他に何が欲しいですか? –

答えて

1

一般的なパターンの1つはPost/Redirect/Getです。そのパターンの下では、ポストの結果はブックマーク可能な(および戻る/前方のナビゲート可能な)ページです。 「戻る」ボタンには、「ここに行くことを意味しなかった、ほとんどのWindowsのダイアログでESCを叩いたようなところに戻ってくれる」という通常の意味があり、「進む」ボタンは「私は背中結局そのページが欲しかった」このパターンは誰にとってもうまくいかないでしょう。各ページ(フォーム送信への応答を含む)があなたがブックマークしたいと思っているいくつかの概念的なエンティティを表すとき、それは最も意味があります。

ログアウトのシナリオでは、ほとんどのアプリはURLに指定されているページに関係なくログインしているかどうかをチェックし、ログインしていない場合はログインフォームにリダイレクトします(あなたはコードはすべてのページにあります;チェックは通常はバルブなどです)。便利な機能は、ログインが成功したときにユーザーがどこに行こうとしていたかを覚えておくことです。

あなたの質問はテクノロジよりもデザインに関するものなので、GWT履歴メカニズムは、リンクによって接続された静的ページの動作を模倣することを意図している点を除いて、GWTは実際に画像を変更しません。パターンを取得することもできます。

+0

ありがとうgatkin、非常に便利です。 :) – adgfs

1

ステートマシンを使用してユーザー(セッション)と要求状態を維持することは非常に一般的です。あなたがそのような状態マシンを持っているなら、あなたは間違った移行を試みていることを知っています。ユーザの状態と間違った遷移に応じて、ユーザをページに転送することができます。たとえば、ユーザーがログインする必要があるが、既にログアウトしているページに移動しようとすると、ログインページにユーザーを送信できますが、ユーザー名を入力してパスワードを要求することができます。

この機能を追加するには、コードにステートマシンをハードコードするか、使用可能なライブラリの1つを使用して独自のコードを記述することができます。たとえば、 Spring Web Flowは、Springフレームワークに対してこの機能を提供します。

+0

あなたの意見を共有してくれてありがとう:) – adgfs