Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

163
Views
Actualizar partes de la interfaz de usuario en cada ciclo de una llamada de sincronización AJAX

De acuerdo, puede ser una pregunta simple, pero hasta ahora no encontré nada útil al buscar, así que lo intentaré aquí.

Estoy usando javascript/jquery simple y antiguo en asp.net core en algún proyecto en el que estoy trabajando.

Actualmente estoy realizando algunas acciones en algunos empleados en un bucle foreach. Para cada empleado, llamo sincrónicamente a través de ajax una API.

Lo que quiero es que la interfaz de usuario se actualice, mostrando al empleado actual que se está procesando en una barra de progreso.

Mientras está en depuración, el proceso parece funcionar bien, pero durante el proceso normal, parece que el subproceso de la interfaz de usuario no se actualiza, solo después de que se haya realizado todo el trabajo. Como tal, tan pronto como empiezo a procesar a los empleados, la pantalla se atasca y se cierra una vez que se ha realizado el trabajo. No se muestra ninguna barra de progreso.

Solo logré mostrar la animación de progreso y el primer empleado usando el siguiente truco

 $('#applyYes').click(function (e) { e.preventDefault(); var year = $('#yearCombo').val(); $('#applyInfo').hide(); $('#applyLoad').show(); $('#applyAction').prop('innerText', 'Calculating...'); setTimeout(function () { var employeeIDs = multipleEmployees_Array(); for (var i = 1; i <= employeeIDs.length; i++) { employeeID = employeeIDs[i - 1]; applyAmount(employeeID, year); //1. Updates progress bar 2. Ajax sync call } }, 0);

})

Según tengo entendido, e.preventDefault parece mover la función de tiempo de espera que se procesa después de que finaliza el subproceso de la interfaz de usuario.

¿Cuál es la forma óptima de lograr lo que quiero?

PD: No hay bibliotecas externas si es posible. Estoy trabajando en una plataforma de terceros, lo que dificulta agregar bibliotecas externas (políticas, permisos, etc.)

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Las solicitudes HTTP síncronas están en desuso precisamente por este motivo. No los uses.

Utilice solicitudes asincrónicas en su lugar.

Si desea ejecutarlos secuencialmente, entonces:

  • Activar i+1 en la función de éxito de i o
  • Use una API basada en Promise y await los resultados
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!