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

79
Views
Mostrar cuadro de diálogo de espera en un evento de cambio de ejecución prolongada

Tengo una casilla de verificación con un evento de cambio. Cuando hay muchos datos, el clic en la casilla de verificación realiza una tarea en segundo plano que puede llevar algún tiempo.

Así que lo primero que hago es:

 $chxSelectAll.on('change', function (e) { $('.loadingnew').show() ... Long running code here }

El problema es: la rueda giratoria en espera solo se muestra cuando el evento de cambio completó el código. El código funciona fuera o desde consola sin problema. ¿Cómo puedo forzar el show () antes de que se ejecute el código?

Saludos

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

0

La rueda giratoria en espera solo se muestra cuando el evento de cambio completó el código.

Eso significa que la tarea de ejecución prolongada no está en segundo plano, sino en primer plano, vinculando (bloqueando) el hilo que comparten el código JavaScript y el código de visualización de la página.

Tienes dos opciones:

  1. Si es posible, descargue la tarea de ejecución prolongada en un subproceso de trabajo web , de modo que no se ejecute en el subproceso principal de la interfaz de usuario y bloquee las actualizaciones de la página.

  2. Si eso no es posible, retrase el inicio del código de bloqueo durante aproximadamente 60 ms usando setTimeout , de modo que el navegador tenga la oportunidad de mostrar la rueda giratoria de "carga" antes de que el código detenga el hilo. Tenga en cuenta que es posible que la rueda giratoria no gire realmente, pero al menos será visible.

Aquí hay un ejemplo de #2:

 $chxSelectAll.on('change', function (e) { $('.loadingnew').show() setTimeout(() => { ... Long running code here }, 60); });
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!