Это интересная проблема.вызов jQuery.ajax последовательно приводит к одному обратному вызову
я делаю асинхронный Аякс поставил
return $.ajax({
url: url,
type: 'PUT',
contentType: 'application/json; charset=utf-8',
async: true, // default
success: function (result, textStatus, xhr) {...}
это работает, как ожидался, если пользователь не делает ставить перед предыдущими возвратами вызова (хотя это асинхронное, вызов действительно занимает .5 секунды, чтобы закончить)
, если пользователь нажимает на кнопку несколько раз (выполнение нескольких пут) происходит следующее:
- я вижу только один вызов сервера в стельке
- успех увольняет за каждый клик
- всех обратных вызовов получить тот же самый новый идентификатор строки (возвращенный сервер)
это приводит меня к неизбежному выводу о том, что первый обратном вызове сервера запускает все невыполненные функции обратного вызова ..
Я могу отключить кнопку до тех пор, пока не вернется обратный вызов, но можно ли обрабатывать несколько невыполненных вызовов? это ограничение браузера? лучший способ справиться с этим?
ОБНОВЛЕНИЕ
в качестве теста я перешел на использование POST вместо PUT: отрегулировать тип: 'POST' на JS стороне, и [HttpPost] на веб-API (на стороне сервера).
Поведение не изменилось.
UPDATE
глядя на посты как this one .. это действительно должно работать. я не вижу какой-либо конкретной причины, по которой остальные параллельные запросы не выходят на сервер.
Попробуйте «cache: false», возможно, что в игре есть кеширование, поэтому вы видите только один ответ с помощью скрипача. –
Означает ли браузер, что он делает различные запросы? –
браузер также видит только один сделанный. Я попытался установить кеш: false, но до сих пор не вижу различий в вышеприведенном поведении. –