Я загружаю файл, используя jquery ajax с прогрессбаром (xhr).
$.ajax({
url: "../Services/upload.ashx",
type: "POST",
data: formData,
cache: false,
contentType: false,
processData: false,
timeout: 60000
xhr: function () {
var myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) {
myXhr.upload.addEventListener('progress', that.progressHandling, false);
}
return myXhr;
}
Upload.prototype.progressHandling = function (event) {
var percent = 0;
var position = event.loaded || event.position;
var total = event.total;
if (event.lengthComputable) {
percent = Math.ceil(position / total * 100);
}
};
Прогрессбар работает отлично. Файл загружается на сервер, но после загрузки требуется некоторая обработка на стороне сервера. Я пытаюсь проверить состояние этой обработки на стороне сервера, сделав еще один запрос jquery ajax.
Проблема в ответе на этот второстепенный вызов. Я не могу получить этот ответ, потому что первый (загрузка файла) все еще ожидает обработки.
ИМХО, эти два запроса являются асинхронными, так почему, если я сделал загрузку файла с длительной обработкой на стороне сервера, это блокирует мне получение любых других ответов от других вызовов ajax?