質問するログイン新規登録

回答編集履歴

1

ユーザビリティ

2020/09/09 22:36

投稿

think49
think49

スコア18196

answer CHANGED
@@ -1,11 +1,21 @@
1
+ ### 同期処理
2
+
1
3
  JavaScriptから同期Submit送信をabortする方法は私の知る限りでは有りません。
2
4
  同期処理はJavaScriptを介さずに行われる処理であり、それをJavaScriptから制御する機能が実装されている可能性は低いと考えます。
5
+
3
6
  サーバサイドスクリプト側でajax処理を捕まえて、submit処理側と同期を取って処理を停止する必要がありますが、そうするぐらいなら、sumit送信を受けるサーバサイドスクリプト側にajax処理を含める方が遥かにスマートでしょう。
4
7
 
8
+ ### 妥協案
9
+
5
10
  どうしても、ajaxで追加処理をさせたいのなら、下記実装が考えられます。
6
11
 
7
12
  1. event.preventDefault()
8
13
  2. ajax処理
9
14
  3. ajax処理成功時に event.target.submit()
10
15
 
16
+ ただし、ajax処理が完了するまで同期submitを待機させる事となり、非同期処理の利点は失われます。
17
+ また、ユーザは「submitボタン押下後に通信が何も発生せず、しばらく待った後に突然submit送信が始まる」という現象になる為、決して分かりやすいUIとはいえず、**ユーザビリティが低い実装**となります。
18
+
19
+ submit受け側のサーバサイドスクリプトに追加処理を加えるのが最適解なのは間違いないと思います。
20
+
11
21
  Re: sika さん