読者です 読者をやめる 読者になる 読者になる

yohjizzz's Blog

I'm a Programmer.

Teeda の doOnce (つづき)。

ただの備忘録です。

この2つのトランザクショントークンをチェックする仕組みで、
「ダブルサブミット」と「戻って再登録」に対して、2重登録させないことを実現しています。
「戻って再登録」を実施すると、2度目の完了画面にも関わらず、1件しかDBに登録されていない振る舞いになる。
チェックに引っかかっても、エラー画面にせずに、メソッドを呼ばずに次の画面に遷移する仕組みが良いですね。
逆に、2回目のリクエストでエラー表示する仕様だと、サーバ処理が遅いために、
ダブルクリックした場合は、1件分の登録は成功しているにも関わらず、エラー画面が表示されるなんて状況になってしまいかねないので、よろしくない。

出羽ブログ 〜はてな版〜 - doOnceメソッドによる二重登録防止

いまの Teeda (1.0.10 もしくは 1.0.11-rc1) でどうなってるのか確認。

デフォルトでは「エラー画面にせずに、メソッドを呼ばずに次の画面に遷移する仕組み」となってくれていればいいけど、
できればトークンをもとに排除されたアクセス専用のメソッドを定義しておくと、そいつがコールされる、みたいな仕組みがあると嬉しいかも。

基本的には次の画面へ遷移すれば ok だと思うけれど、、、
たとえばエラーメッセージ※を出力したい、みたいなケースもあると思うので。特に「戻って再登録」みたいなパターンには。

※【登録処理は成功しましたよ。でも何度も「登録ボタン」が押されたか、もしくは登録後に戻って「登録ボタン」を押してますよ】的なやつ。

doOnceHoge() に対する doIllegalHoge() みたいなメソッドがあったらな、なんて。。