1

Grails アプリケーションで作業しながら、Ajax で最初の一歩を踏み出しています。私は使っている

<g:form ...>  
  <g:submitToRemote ... />
</g:form>

最も簡単な方法で、箱から出してすぐにうまくいきました (ありがとうgrails!)。問題は、Ajax 呼び出しが html を返して更新するのに (少なくともテスト システムでは) 約 2 秒かかることです。その間、ユーザーは送信ボタンをもう一度押すことができます (実際にはかなり頻繁に押します)。現時点では、これにより 2 回目の呼び出しが行われ、最終的に出力が台無しになります (同じデータを 2 回送信することはできないというエラー メッセージが表示されます)。

これを防ぐ最善の方法は何ですか?

ご意見をお寄せいただきありがとうございます。

4

2 に答える 2

4

これを処理する最善の方法は、onSubmit() 関数で送信ボタンを無効にすることです。正直なところ、なぜ多くのサイトがこれを行わないのかわかりません。私はしばしば次のステップに進み、送信ボタンを無効にする代わりに、送信ボタンを span タグに配置し、span タグの内容を静的テキスト「お待ちください...」に置き換えます。これにより、ユーザーは押した視覚的なフィードバックを得ることができます。ボタンと「トップの男性がそれに取り組んでいます」。

于 2011-02-22T03:27:27.983 に答える
0

dj_segfaultが言ったように、あなたはそれを行うことができます。

コントローラでこれを検証する場合は、公式ドキュメントの「重複するフォーム送信の処理」を参照してください。

http://grails.org/doc/latest/guide/theWebLayer.html#formtokens

于 2013-03-14T01:26:08.230 に答える