Webアプリケーション 二重送信防止

何も考えていないとどうなるか

おもいっきり素早くクリックすると何レコードも登録されてしまうのである。

OK.サーバー側にチェック入れるわ

例えばショッピングサイトだとする。
前回注文から一定時間経過してないとエラーになるようにしたらどうか。

流れ:

  • 注文ボタンを押す
  • JS(on click)

    • ユーザーIDで注文テーブルを読み、前回注文から一定時間経過しているかチェック

      • 経過してない→エラー
      • 経過している→注文

これでどうだ。
試してみるとダメ。

素早くクリックするとDB側の更新間に合わないの?わからない。

なわけで一応フロント側にも制御をいれる

     $("#test").prop("disabled", true);

これでいってみましょう。