- PR -

二度押し禁止処理について(DHTML編)

投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-07-08 13:19


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:54 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-07-08 17:39
>>何もしなけりゃButton1のdisabledはfalseになると思うけど。。。
>なります?2005からそうなったのですか?

元の質問ではボタンのクリックイベントが発生し、処理を行うという記述があります。
これがサーバ上の処理であれば、サーバへのPoastBackが発生しているということです。
であれば、Jittaさんが書いているように、サーバ上の処理が終了して新しいHTMLが
ブラウザに降りてきます。
そうしたら、Button1に設定したdisabledの設定はなかったことになるので
何もする必要はないですよね。
これは2003であっても2005であっても同じですよね。

> サーバの処理が終わるまで、クライアント側では2度押し出来ないようにしたいという質問じゃないでしょうか。

ええ、そう思って回答してますよ。

> まさかサーバ側からの応答がない限りクライアント側は何も動かないと思ってません?

逆に、サーバ側の処理が終わったあと、クライアント側に何の応答もこないと
思っているのでしょうか?
そんなはずはないですよね。
だったら、ボタンにdisableの設定しても、応答が帰ってきた時点でその設定は
解除されるというのは理解してもらえますよね?
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-07-09 00:10


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:54 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-07-09 01:14
>  で、質問は
> >Me.Button1.Attributes.Add("onclick", "Button1.disabled = true; ")
>  しちゃうと
> >1をした後、vb側のButton1の処理が実行されなくなる。
>  だからどうしたらいいのでしょうか...こんな内容ですよね?

元の質問のここの読み取り方がぜうすさんと私で違うようです。
私は、元の質問者は、
「1をした後、Button1のdisabledをどこかでfalseにする記述を入れないといけない」
と思い込んでいる、と考えています。
というか、元の質問をそのまま読む分にはそのようにしか読み取れないのですが。。。
調査してるだけで、試してなくて、頭の中で考えてるのだけれどサーバとクライアントの
処理についていまいちわかってないみたいだな、と思っています。

まぁ、元の質問者がどこでつまってるのかが正確にわからない限り答えはでないわけで
元質問者の方の返答待ち、というとこでしょうかね。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-07-09 19:37
引用:

ぜうすさんの書き込み (2006-07-09 00:10) より:

 で、質問は
>Me.Button1.Attributes.Add("onclick", "Button1.disabled = true; ")
 しちゃうと
>1をした後、vb側のButton1の処理が実行されなくなる。
 だからどうしたらいいのでしょうか...こんな内容ですよね?


 カタナさんの望む動作は、多重送信が抑止されることですよね?
で、コードと、コードによる動作、の対応がとれていないから、質問にいたったのではないでしょうか。
この質問の意図は、「私のコードで、どう動くのでしょう?」ではなく、
「こうしてみたんだけど、望む動作にならないのはなぜ?」
では、ないでしょうか。

 そう考えて、「それはコードがおかしい」と、回答したつもりです。
まず、現在の実装を全面的に否定して、こういう HTML が書かれるようになるコードを考えてくださいと、提示しました。


 つまり、カタナさんの現在の実装では、
コード:
クライアント      サーバ
  |→→→→→→→→→→|リクエスト
  |←←←←←←←←←←|レスポンス
  |          |
  |ボタン→→→→→→→|処理開始
  |          |VB.NET コードの、OnClick
  |          |
  |          |
  |          |
  |          |
  |←←←←←←←←←←|レスポンス(イベントハンドラ終了)
  |ここで
  |ボタンを disabled にするので、
  |以降、ボタンの操作ができない


こうなっています。

 そうではなく、クリックして、ポストする直前に、JavaScript にて disabled にして、
その後、disabled = false の設定の(というか、書かれていない) HTML をサーバから流してきて、
それによって上書きしちゃおう、ということです。


=====
 あと、最初の投稿にある、「Microsoftの書籍にはDHTMLを使用して実現できると書いてあるのですが、実現方法の記述なし・・・」というのは、
この本 link to Microsoft サイト
ですかね?
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-07-10 02:08


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:54 ]
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-07-10 06:06
引用:

 いや〜、僕のように頭の足りない人は質問できませんね。「よく.NETを理解してね」の一言で追い返されそうで...。
 すみませんでした、人の文章もよく読めず、.NETも理解していませんで。
 お休みなさい〜


この会議室には、いろんなレベルの方だおられるので質問者のレベルに合った回答を
すべきですよね。私も反省しないと・・・

これにこりずに、ドンドン質問してください。
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-07-10 12:45


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:54 ]

スキルアップ/キャリアアップ(JOB@IT)