3

AJAX呼び出しを介してハンドラーにあるメソッドにアクセスする.NETアプリケーションがあります。このAJAX呼び出しは、通常、ユーザーが特定のボタンをクリックしたときに発生します。私の問題は、ユーザーがボタンを複数回クリックしたときに発生します。それは私のオブジェクトのすべての状態を台無しにします。

どのようにそれを世話しますか?最初の呼び出しが終了するまでユーザーのクリックをブロックできることはわかっていますが、サーバー側でこの問題を処理するための解決策を見つけたいと思います。何か案が?

ありがとう!

4

3 に答える 3

1

onclickメソッドで、ボタンのonclickハンドラーを削除し、setTimerを使用してバックグラウンドでajax呼び出しを実行し、trueを返します...

ajaxが完了したら、オプションでonclickハンドラーを再接続できます。

于 2010-01-18T11:05:14.730 に答える
1

これは、クライアントコードを使用して最もよく達成されると思います。jQueryを使用している場合、one()は洗練されたソリューションかもしれません。または、リクエストの開始時に変数をtrueに設定し、終了時にfalseに設定することもできます。次に、変数がtrueに設定されている間は、それ以降のすべての要求を防止します。

サーバー側でそれを行うことは機能しません。サーバーは処理を終了した可能性がありますが、メッセージはまだクライアントに到着していません。次に、クライアントは新しい要求を行います。サーバーは新しいものであるため、それに反応します。このような場合、大混乱が発生する可能性があります。

于 2010-01-18T11:10:14.607 に答える
0

jqueryblockUIプラグインを使用します。ユーザーが最初にボタンをクリックしたときに、ユーザーページをロックします。ユーザータスクを完了したら、ページのブロックを解除します。

http://malsup.com/jquery/block/#を参照してください

于 2010-01-18T13:05:29.957 に答える