2010年09月01日

ASP.NETでボタンの2度押しを防止する方法

ASP.NETでは、ボタンの2度押しによって本来は1回だけ行いたい処理が、複数回サーバーで実行されてしまう問題が知られています。
ショッピングサイトで、購入ボタンを複数回クリックするなど、本来1回しか行われない処理が複数回実行されてしまう場合があります。

これを簡易的に回避する方法があります。

ボタンコントロールのOnClientClickプロパティに、以下のようにJavaScriptコードを設定します。


これにより、2回目以降のボタンクリックでは、ポストバックが発生しないようになります。

この方法では、ボタン一つ一つに対してOnClientClickプロパティの設定が必要になりますが、画面上の全てのボタンで2度押しを防止させたい場合には、下記ページのコードが参考になります。
http://d.hatena.ne.jp/itaosan/20061225/1167025092

最後に・・・ここで紹介した方法は、クライアント側での簡易的な回避方法にすぎません。
JavaScriptをOFFにされた場合や、直接HTTP通信を送り込まれた場合などの対応には、サーバー側での本格的な対策が必要です。
posted by キヨ at 21:35| Comment(0) | TrackBack(0) | .NET技術
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/107012348
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック