У меня есть программа, которая вызывает функцию в javascript с 1 o более запросов к 1 сервлету, я хочу выполнить запрос после запроса и получить ответ после каждого выделения, чтобы сделать это имеют 1 функцию, но она показывает результат только после выполнения всех запросов.Обновление текстового поля после получения ответа от сервлета в javascript
function cmd(args) {
width = 0;
var res = args.split('\n');
var largo = res.length;
var progressLength = 100/largo;
for (var i = 0; i < largo; i++)
{
if (res[i] == 'desconectar')
{
desconectar();
break;
}
else
{
executeCMD(res[i]);
}
}
}
function executeCMD(args)
{
$.ajax({
type: "POST",
url: 'Controlador',
data: {cmd: args, operacion: 1},
success: function (response) {
document.getElementById('respuesta').value = document.getElementById('respuesta').value + response;
},
dataType: 'text',
async: false
});
}
Если я добавлю window.alert (response); внутри области успеха он показывает прогресс шаг за шагом и отлично работает, но он показывает предупреждения, которые я не хочу.
Это я хочу http://imgur.com/a/9nclR, но я получаю только последнее изображение.
Есть ли какие-либо причине у вас есть 'асинхронные: false'? Это обычно считается плохой практикой и даже [устарело в jQuery 1.8+] (http://api.jquery.com/jQuery.ajax/) – neilsimp1
Да, если я установил async как true, запросы будут отображаться после завершения мой цикл, из которого я вызываю функцию, выполняет CMD. Таким образом, ответ будет отображаться одновременно. – Jebus
Не уверен, но я думаю, что проблема также может быть переменной «progress». Как вы его устанавливаете? Это текущее значение для установки в строке выполнения или функции обратного вызова? – michael