У меня есть куча текстовых полей на странице и кнопка отправки. Я проверил событие TextChanged текстового поля, чтобы выполнить метод на стороне сервера. Пользователь вводит значения в текстовые поля, выводит их в следующее текстовое поле (запускает событие с изменением текста) и, наконец, нажимает кнопку отправки, которая вызывает другой метод на стороне сервера. Все функции асинхронны. Метод submit должен быть выполнен только после завершения метода textchange, поскольку оба они используют одни и те же данные. Иногда проблема заключается в том, что метод textchange занимает немного больше времени, и метод отправки запускается до завершения функции textchange. Как я могу это предотвратить? Как заблокировать/поставить в очередь функции?jquery - предотвращение этой гонки состояние
1
A
ответ
1
Не запирайте и не ставьте в очередь! Просто отключите кнопку отправки, пока событие изменения + ajax не будет завершено.
$('#submitBtn').attr('disabled', 'disabled');
Или JQuery 1.6+:
$('#submitBtn').prop('disabled', true);
И когда изменение Аякс отделка:
$('#submitBtn').attr('disabled', '');//or $('#submitBtn').prop('disabled', false)
0
Посмотрите на JQuery очередь плагине Бен Alman в http://benalman.com/projects/jquery-message-queuing-plugin/ из звуков от нее, может быть то, что вам нужно.
Смежные вопросы
- 1. EF предотвращение гонки состояние
- 2. Состояние гонки с JQuery
- 3. Состояние гонки в MySQL - предотвращение множественных вставок
- 4. jQuery ajax call гонки состояние?
- 5. jQuery Animation Thread - Состояние гонки?
- 6. WebAPI Предотвращение условий гонки
- 7. Состояние гонки Javascript?
- 8. Состояние операционной системы Состояние гонки
- 9. AJAX GET состояние гонки?
- 10. Состояние гонки [JAVA]
- 11. MySQL Вставка: Состояние гонки
- 12. Состояние гонки и мьютексы
- 13. jQuery датапикер не появляется, гонки состояние?
- 14. Parallel.ForEach состояние гонки
- 15. Состояние гонки в RAFT?
- 16. phread_cond_broadcast состояние гонки
- 17. MySQL MyISAM состояние гонки
- 18. java ThreadPool состояние гонки
- 19. Состояние гонки в Parallel.ForEach?
- 20. Состояние гонки принтеров?
- 21. Как избежать гонки состояние
- 22. Шаблон наблюдателя - состояние гонки
- 23. Завершение объекта состояние гонки
- 24. Array.pop состояние гонки
- 25. Состояние гонки в Метеор
- 26. NodeJS состояние гонки?
- 27. Состояние гонки и разблокировка
- 28. ColdFusion VARIABLES Состояние гонки?
- 29. Состояние гонки в ConcurrentBitSet
- 30. Задача :: ConfigureAwait - состояние гонки?
Я думал об этом раньше, но проблема в моем случае заключается в том, что, когда пользователь находится в последнем текстовом поле, они не выходят, чтобы вызвать функцию изменения текстового поля. Они прямо нажимают кнопку отправки (которая затем запускает функцию изменения текстового поля). Если я отключу отправку, они не нажимают кнопку или где-либо еще в форме, чтобы вызвать изменение. Любые другие предложения? – tempid
@enigma. Затем сохраните флаг с истинным, когда все события изменения будут выполнены. Захватите событие отправки, и если флаг имеет значение false, запретите использование по умолчанию. Как так? – gdoron
Спасибо, это то, что я закончил, и, похоже, работает нормально. – tempid