私は、ページと送信ボタンにテキストボックスの束を持っています。テキストボックスのTextChangedイベントを結んで、サーバー側のメソッドを実行しました。ユーザは、テキストボックスに値を入力し、次のテキストボックスにタブアウトし(textchangedイベントをトリガする)、最後に別のサーバ側メソッドを呼び出す送信ボタンをクリックする。すべての機能は非同期です。 submitメソッドは、両方が同じデータを共有するため、textchangeメソッドが終了した後にのみ実行する必要があります。問題は、textchangeメソッドが終了するのに少し時間がかかることがあり、textchange関数が完了する前にsubmitメソッドがトリガーされる場合があります。これをどうやって防ぐのですか?どのように機能をロック/キューするのですか?jquery - この競合状態を防ぐ
1
A
答えて
1
何もロックしないでください。変更イベント+ ajaxが完了するまで、送信ボタンを無効にするだけです。
$('#submitBtn').attr('disabled', 'disabled');
またはjQueryの1.6+のために:
$('#submitBtn').prop('disabled', true);
と変更Ajaxの仕上げ:
$('#submitBtn').attr('disabled', '');//or $('#submitBtn').prop('disabled', false)
0
そのそれの音からベンAlmanのjQueryのキューイングプラグインhttp://benalman.com/projects/jquery-message-queuing-plugin/を見てみましょうあなたが必要とするものかもしれません。
関連する問題
- 1. jQueryのAJAXコールで競合状態を防ぐ
- 2. 競合状態
- 3. 競合状態を防ぐためにセマフォを使用する(C言語)
- 4. jQueryフェードイン/フェードアウト競合状態ですか?
- 5. ブラウザの競合状態を防止するJavaScriptページのリフレッシュ
- 6. 競合状態の回避
- 7. アンドロイドdlopen()の競合状態?
- 8. オーダーの競合状態
- 9. .NETガベージコレクタ「競合状態」
- 10. C#スレッド競合状態
- 11. 状態結合の防止?
- 12. 複数のchrome.storage APIコールの競合状態を防ぐ最も良い方法は?
- 13. MySQLのMyISAMの競合状態
- 14. ActiveRecordのパターンと競合の状態
- 15. javascript競合状態の問題
- 16. C#スレッド:競合状態の例
- 17. シリアル化中の競合状態
- 18. コアデータ - 起動時のマルチスレッド競合状態
- 19. AJAXコール中のKnockoutJS競合状態
- 20. Rspec要求テストでの競合状態
- 21. 同期後の競合状態
- 22. データ競合状態を防止するスレッドの使用を学習する
- 23. なぜCUDAの同期ポイントは競合状態を防ぎませんか?
- 24. C#プログラムでこの競合状態を避ける
- 25. BlockingCollection、競合状態ですか?
- 26. 競合ネットを使用して過剰適合を防ぐ
- 27. Javaで競合状態を呼び起こす
- 28. Node.jsとファイルシステム:これは競合状態ですか?
- 29. Wi-Fiがオフ状態になるのを防ぐ方法
- 30. 1つのデータストア。複数のプロセス。このSQLは競合状態を防ぎますか?
私はこれまで考えていましたが、私のケースでは、ユーザーが最後のテキストボックスにいるとき、タブアウトしてテキストボックスの変更機能をトリガーしないという問題があります。送信ボタンを直接クリックすると、テキストボックスの変更機能がトリガーされます。送信を無効にすると、ボタンやフォーム上の他の場所をクリックして変更をトリガーしません。その他の提案はありますか? – tempid
@enigma。すべての変更イベントが完了したら、trueでフラグを保存します。サブミットイベントをキャプチャし、フラグがfalseの場合はデフォルトを防ぎます。それはどうですか? – gdoron
ありがとう、これは私がやったことです、それはうまくいくようです。 – tempid