84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
登録時に、同じユーザーが複数回登録し、データベースに同じデータが複数表示されます。バックグラウンドは検証されており、フロントエンドの JS も 2 秒に 1 回の送信を制限していますが、複数のデータがまだ表示されます
フロントエンドは、ページに入るときに登録ボタンをクリックできるように設定できます。クリックして登録リクエストを送信すると、リクエストが返されて登録が失敗したときに、ボタンがクリックできないように設定されます。クリックできるように設定します。
データベース内の制限として一意のインデックスを使用する
送信を 2 秒に制限するためにdebouce还是throttleを使用しているかどうかはわかりません
debouce
throttle
より良い方法は、[登録] をクリックしてボタンを無効にし、リクエストが返されるのを待ってから、エラーを報告するコールバックで忘れずに [登録] ボタンを有効にすることです。
サーバー側の検証には一意性の判断が必要です。フロントエンドボタンをクリックした後にクリックを無効にするか、サーバーが戻ってクリックのブロックを解除するのを待つか、タイムアウトを通じて実装します
登録には独自の認証が必要です
データベースとユーザー名の主キーの一意の検証
フロントエンドのボタンを無効にする解決策も必要ですが、これは一般のユーザーが複数回クリックすることを防ぐだけであり、ブラウザ以外の「ユーザー」を防ぐことはできませんサーバーがどれだけ繰り返しリクエストを受け入れても、それはサーバーによって処理される必要がありますバックエンド目的同じユーザーは一度だけ登録できます、他の回答を参照、主キー
私の記事「Web プロジェクトでクライアントが繰り返しリクエストを送信しないようにする方法」を参照してください
フロントエンドは、ページに入るときに登録ボタンをクリックできるように設定できます。クリックして登録リクエストを送信すると、リクエストが返されて登録が失敗したときに、ボタンがクリックできないように設定されます。クリックできるように設定します。
データベース内の制限として一意のインデックスを使用する
送信を 2 秒に制限するために
debouce
还是throttle
を使用しているかどうかはわかりませんより良い方法は、[登録] をクリックしてボタンを無効にし、リクエストが返されるのを待ってから、エラーを報告するコールバックで忘れずに [登録] ボタンを有効にすることです。
バックエンドデータベースフィールドにも一意にインデックスを付ける必要がありますサーバー側の検証には一意性の判断が必要です。フロントエンドボタンをクリックした後にクリックを無効にするか、サーバーが戻ってクリックのブロックを解除するのを待つか、タイムアウトを通じて実装します
登録には独自の認証が必要です
データベースとユーザー名の主キーの一意の検証
フロントエンドのボタンを無効にする解決策も必要ですが、これは一般のユーザーが複数回クリックすることを防ぐだけであり、ブラウザ以外の「ユーザー」を防ぐことはできません
サーバーがどれだけ繰り返しリクエストを受け入れても、それはサーバーによって処理される必要がありますバックエンド
目的同じユーザーは一度だけ登録できます、他の回答を参照、主キー
私の記事「Web プロジェクトでクライアントが繰り返しリクエストを送信しないようにする方法」を参照してください