次のシナリオを考えてみましょう: ダイアログ (jquery ダイアログ) を開くことができるページがあります。このダイアログにより、ユーザーは値を更新したり、新しい値を挿入したりできます。ユーザーが [確認] ボタンを数回クリックすると、クリックした回数だけ更新または挿入が開始されます。このメソッドは ajax 呼び出し (jquery ajax) によって起動され、成功するとユーザーに「完了しました」というメッセージが表示されます。
更新シナリオでは、メソッドが呼び出されるのと同じ回数、サーバー コードがデータベースで更新コマンドを呼び出す必要がありますが、問題ありません。ただし、挿入の状況では、データが数回送信され、データベースにいくつかの行が挿入されます。これは、他の分野で多くの問題を引き起こします。
私の問題の理想的な解決策となる post-redirect-get パターンについて読みました。しかし、それは非ajax投稿についてのみ述べています。メソッドへの呼び出しが ajax 呼び出しを介して行われる場合はどうでしょうか? ユーザーが同じものを何度も送信するのを防ぐには?
ダイアログのボタンをブロックしようとしましたが、機能しますが、特にユーザーのブラウザに問題がある場合、ボタンが常にブロックされるとは限らないため、悪い解決策だと思います。