Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

256
Visualizações
¿Por qué se cae settimer/setInterval de JavaScript cuando hay un temporizador idéntico en la cola de tareas?

Estoy estudiando el temporizador JS y recientemente leí esta página https://johnresig.com/blog/how-javascript-timers-work/

Tenga en cuenta lo siguiente en este artículo.

Tenga en cuenta que mientras el controlador de clic del mouse se ejecuta, se ejecuta la devolución de llamada del primer intervalo. Al igual que con el temporizador, su controlador se pone en cola para su ejecución posterior. Sin embargo, tenga en cuenta que cuando el intervalo se activa nuevamente (cuando el controlador del temporizador se está ejecutando), esta vez se descarta la ejecución del controlador. Si pusiera en cola todas las devoluciones de llamada de intervalo cuando se está ejecutando un gran bloque de código, el resultado sería un montón de intervalos ejecutándose sin demora entre ellos, al finalizar. En cambio, los navegadores tienden a simplemente esperar hasta que no haya más controladores de intervalos en cola (para el intervalo en cuestión) antes de poner más en cola.

Y en Commnets, podemos ver a continuación:

Abhi (25 de febrero de 2008 a las 2:16 pm) Solo para asegurarme de que entendí, permítanme reiterar. Si un controlador de intervalo ya está en cola para su ejecución y antes de que tenga la oportunidad de ejecutar otro intervalo se activa, entonces se descartará el controlador del intervalo recién activado. Pero si un controlador de intervalos se está ejecutando y, mientras se ejecuta, se activa otro intervalo, el controlador recién activado se ejecutará inmediatamente después de que el controlador de intervalos que se está ejecutando actualmente termine de ejecutarse. Lo siento si sueno demasiado complicado.

John Resig (25 de febrero de 2008 a las 3:29 pm) @Abhi: Sí, eso es correcto.

Solo tenga en cuenta que en su segundo ejemplo "Pero si un controlador de intervalo se está ejecutando y mientras se ejecuta otro intervalo se dispara, el controlador recién activado se ejecutará inmediatamente después de que el controlador de intervalo que se está ejecutando actualmente termine de ejecutarse". puede que no sea lo siguiente absoluto en ejecutarse (ya que otro temporizador o evento puede estar ya en cola), pero ciertamente ocurrirá sin demora artificial.

Pero, sí, tiene razón en su suposición, y sí, esto es bastante complicado.

Si mi entendimiento es correcto, en JavaScript parece que se descarta cuando se presiona el mismo temporizador mientras el temporizador está en la cola de tareas (aún no se está ejecutando, solo esperando). ¿Puede alguien explicar por qué ocurre esto? Revisé la especificación HTML sobre el temporizador ( https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html ), pero no pude encontrar nada como esto.

Editar) Quiero saber si existe alguna condición, como que el navegador elija empujar o soltar la tarea en la cola de tareas

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda