コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

続トークン(SAStruts限定でないけど)

トークンってどのあたりで使用しますか?
新規登録だと業務的なキーの重複チェックで処理するし、
更新だとJavaScriptのダブルサブミット対策とバージョン番号による排他制御
使えば、代用できるっぽいので、なんとなく最近、要らない気がしているので。。。
(一応、DBで排他制御してない時は重宝してました。)

2008年2月17日のコメント

トークンは、DBへの登録・更新・削除のときに使用してます。
登録のキーの重複チェックやバージョン番号のチェックだと、ダブルサブミットの際に、登録の場合であれば(2度同じものを登録するので)「すでに登録済みです」とか、更新の場合に(バージョン番号が異なるので)「先にどこかで更新されました」といったメッセージを出すかと思います。
ただ、ユーザーが「2度押しした」つもりがないのにそういったメッセージでいいのかなと考え、最近作っているものは「2度押しした」ということをユーザーに明確にするためにダブルサブミットされた時にはダブルサブミットエラー画面に飛ばすことが多いです。

ただ、コメントに頂いたとおりそこまで本当に必要かということは考える必要があるかと思います。
ブルサブミットされても、上記のように

  • 登録の場合にはキーの重複チェック
  • 更新の場合にはバージョン番号等による排他制御
  • 削除の場合は削除対象の存在チェック

ということをしているので、ダブルサブミットでDB上の問題は出ません。
かつ、JavaScriptで少しの間サブミットできないようにするということはしているので、通常はダブルサブミットも起こりにくいです。
そう考えると、確かに必要かなと思います。

うーん。ちょっと結論が出せません。
ユーザーにとってはどちらがいいんでしょうか。ユーザーさんに判断してもらうというのも手かもしれませんがどうなんでしょう?。