JavaScript - 登録時に、同じユーザーが複数回登録し、データベースに同じデータが複数表示されます。バックグラウンドは検証されており、フロントエンド JS も 2 秒に 1 回の送信を制限していますが、複数のデータは依然として存在します。現れる。
世界只因有你
世界只因有你 2017-06-30 09:52:16
0
8
997

登録時に、同じユーザーが複数回登録し、データベースに同じデータが複数表示されます。バックグラウンドは検証されており、フロントエンドの JS も 2 秒に 1 回の送信を制限していますが、複数のデータがまだ表示されます

世界只因有你
世界只因有你

全員に返信(8)
習慣沉默

フロントエンドは、ページに入るときに登録ボタンをクリックできるように設定できます。クリックして登録リクエストを送信すると、リクエストが返されて登録が失敗したときに、ボタンがクリックできないように設定されます。クリックできるように設定します。

いいねを押す +0
伊谢尔伦

データベース内の制限として一意のインデックスを使用する

いいねを押す +0
淡淡烟草味

送信を 2 秒に制限するために debouce还是throttle を使用しているかどうかはわかりません

より良い方法は、[登録] をクリックしてボタンを無効にし、リクエストが返されるのを待ってから、エラーを報告するコールバックで忘れずに [登録] ボタンを有効にすることです。

バックエンドデータベースフィールドにも一意にインデックスを付ける必要があります

いいねを押す +0
Peter_Zhu

サーバー側の検証には一意性の判断が必要です。フロントエンドボタンをクリックした後にクリックを無効にするか、サーバーが戻ってクリックのブロックを解除するのを待つか、タイムアウトを通じて実装します

いいねを押す +0
学习ing

登録には独自の認証が必要です

いいねを押す +0
给我你的怀抱

データベースとユーザー名の主キーの一意の検証

いいねを押す +0
三叔

フロントエンドのボタンを無効にする解決策も必要ですが、これは一般のユーザーが複数回クリックすることを防ぐだけであり、ブラウザ以外の「ユーザー」を防ぐことはできません
サーバーがどれだけ繰り返しリクエストを受け入れても、それはサーバーによって処理される必要がありますバックエンド
目的同じユーザーは一度だけ登録できます、他の回答を参照、主キー

いいねを押す +0
世界只因有你

私の記事「Web プロジェクトでクライアントが繰り返しリクエストを送信しないようにする方法」を参照してください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート