2012-02-24 5 views
0

サーブレット2.5を使用してWebアプリケーションを構築していますが、ユーザーがボタンをクリックしてアクションを実行してからF5/Refreshを押してアクションを再開できないようにする必要がありました。F5の複数のファイルのアップロードを停止するにはどうすればよいですか?

私はこれに対処しようと思案している二つの方法(しかし、本当に多く、まだ考えて与えられていない。それは最初にここに頼むのがベストです思考):

  • アクションが行われている、私はリダイレクトに呼び出します効果的にクエリパラメータをクリアする
  • アクションが完了したら、ランダム化されたハッシュを追加し、次のエントリが変更されているかどうかを確認します。 (ただし、次のアクションがリフレッシュか実際の新しいリクエストかどうか知る方法はわかりません)

または、これをTomcat/etcやいくつかの共有ライブラリで行うより簡単で標準化された方法がありますか?

答えて

3

あなたの最初のアイデアは正しいです。パターンはredirect after postと呼ばれます。任意の高度なWeb開発フレームワークを使用する場合は、これをそのまま使用する必要があります。

HTTP動詞を正しく使用する必要があります。 HTTP GETの場合は、複数回呼び出すことは問題ありません。

1

私が見ることができる別のテクニックは、ajaxを使った非同期アップロードです。 F5 /リフレッシュボタンは、もはやアップロードイベントをトリガーしないので役に立たないでしょう。

ボタンを数回クリックする(つまりボタンを隠す、または無効にする)ことを防ぐには、JavaScriptを追加する必要があります。

関連する問題