Problema con each async
Publicado por Ale P. (2 intervenciones) el 04/04/2020 01:25:39
Hola, desde ya les agradezco su ayuda
les cuento que estoy renegando con un trozo de codigo, resulta que ejecuto un each con jquery recorriendo las filas de una tabla
y en cada iteracion, ejecuto una llamada de AJAX en modo async=false, que hace otra cosa...
y mientras tanto, voy mostrando el estado de esta tarea, o sea, por que fila va actualizando
la cosa es que empieza el each.... y hasta que no termina no me devuelve el control... y por ende, no me muestra nada, no actualiza el estado, nada
es como que queda tildado por un rato hasta q se termina
aca les pego el codigo, ojala me puedan decir como hacer para que sea asincrono tambien el each y poder mostrar el estado de la actaulizacion de la tabla (por supuesto q hace todo... pero no se ve nada... solo se ve el resultado de la ultima instruccion, por ej, fila 100/100 o sea, me muestra que termino, ajajja)
vale aclarar que si hago async=true en el $.post() se me mandan los 100 registros a la vez... y por supuesto, obtengpo un error del servidor, por timeout...hace los primeros30, 40, y pum.. error 524
espero se entienda, gracias!!!
les cuento que estoy renegando con un trozo de codigo, resulta que ejecuto un each con jquery recorriendo las filas de una tabla
y en cada iteracion, ejecuto una llamada de AJAX en modo async=false, que hace otra cosa...
y mientras tanto, voy mostrando el estado de esta tarea, o sea, por que fila va actualizando
la cosa es que empieza el each.... y hasta que no termina no me devuelve el control... y por ende, no me muestra nada, no actualiza el estado, nada
es como que queda tildado por un rato hasta q se termina
aca les pego el codigo, ojala me puedan decir como hacer para que sea asincrono tambien el each y poder mostrar el estado de la actaulizacion de la tabla (por supuesto q hace todo... pero no se ve nada... solo se ve el resultado de la ultima instruccion, por ej, fila 100/100 o sea, me muestra que termino, ajajja)
vale aclarar que si hago async=true en el $.post() se me mandan los 100 registros a la vez... y por supuesto, obtengpo un error del servidor, por timeout...hace los primeros30, 40, y pum.. error 524
espero se entienda, gracias!!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function GuardarArchivo()
{
document.getElementById('Guardar').style.display = "none"; // oculta el boton
document.getElementById('GuardandoSpin').style.display = "block"; // muestra un spinner
// Recorre todas las filas y va insertando con ajax los productos
$('#Tabla-FP tr').each(function()
{
$.ajax(
{
url: 'productos.php',
global: false,
type: 'POST',
data:
{
campos del post
},
async: false,
success: function(data)
{
nFilasImp++;
document.getElementById('Estado').innerHTML = " " + nFilasImp + "/" + nFilasArch; // muestra el estado del que les hablaba, que va 2 de 100 filas x ej...
}
});
}
});
document.getElementById('Guardar').style.display = "block"; // muestra de nuevo el boton
document.getElementById('GuardandoSpin').style.display = "none"; // oculta el spinner
document.getElementById('contenido-archivo').innerHTML = '<i class="fas fa-check"></i> Se ha importado en su totalidad el archivo';
}
Valora esta pregunta


0