登録時に、同じユーザーが複数回登録し、データベースに同じデータが複数表示されます。バックグラウンドは検証されており、フロントエンドの JS も 2 秒に 1 回の送信を制限していますが、複数のデータがまだ表示されます
習慣沉默2017-06-30 09:54:16
フロントエンドは、ページに入るときに登録ボタンをクリックできるように設定できます。クリックして登録リクエストを送信すると、リクエストが返されて登録が失敗したときに、ボタンがクリックできないように設定されます。クリックできるように設定します。
淡淡烟草味2017-06-30 09:54:16
送信を 2 秒に制限するために debouce
还是throttle
を使用しているかどうかはわかりません
より良い方法は、[登録] をクリックしてボタンを無効にし、リクエストが返されるのを待ってから、エラーを報告するコールバックで忘れずに [登録] ボタンを有効にすることです。
バックエンドデータベースフィールドにも一意にインデックスを付ける必要があります天蓬老师2017-06-30 09:54:16
サーバー側の検証には一意性の判断が必要です。フロントエンドボタンをクリックした後にクリックを無効にするか、サーバーが戻ってクリックのブロックを解除するのを待つか、タイムアウトを通じて実装します
三叔2017-06-30 09:54:16
フロントエンドのボタンを無効にする解決策も必要ですが、これは一般のユーザーが複数回クリックすることを防ぐだけであり、ブラウザ以外の「ユーザー」を防ぐことはできません
サーバーがどれだけ繰り返しリクエストを受け入れても、それはサーバーによって処理される必要がありますバックエンド
目的同じユーザーは一度だけ登録できます、他の回答を参照、主キー