Fórum Cronômetro em tempo real #623723

06/05/2025

0

Tenho cronômetro regressivo em javascript baseado em tempo real, porém, a depender do uso da máquina este cronômetro pula alguns segundos para atualizar o tempo: 00:58, 00:57, 00:54 (deixa de mostrar 56 e 55) por exemplo.
Existe alguma maneira de "forçar" certa prioridade no processamento desse javascript para evitar isso?
Jeronimo Queiroz

Jeronimo Queiroz

Responder

Post mais votado

06/05/2025

Eu não conheço javascript muito bem, mas creio que, qualquer que seja a linguagem, o mecanismo de funcionamento seja semelhante.

Quando se trata do mundo Windows, tudo o que ocorre é baseado em mensagens. Quando você aperta uma tecla do teclado, move o mouse ou interage com a interface, tudo é convertido em eventos que vão para uma fila de mensagens, para serem consumidos e tratados de acordo com o tipo de evento.

Cada aplicação possui sua fila própria de eventos e depende de um "dispatcher", uma rotina que lê essa fila e executa os eventos que tratam estas mensagens.

O dispatcher pode aguardar o retorno de um evento para processar a mensagem seguinte, de forma que, se um evento não termina rápido, retornando ao dispatcher, podem ocorrer períodos de travamento em que o task manager informa que a aplicação não está respondendo. O Windows também pode não enfileirar mensagens semelhantes, que ainda não foram processadas, para minimizar o esforço computacional.

Também podemos ter interrupções de hardware e software que inibem novas interrupções, temporariamente, para garantir a integridade da informação. Se um componente de hardware encontra-se ocupado e o driver não consegue liberar as interrupções rapidamente, também ocorrem travamentos.

O Windows não foi concebido para ser um SO de missão crítica.

No seu caso, que está trabalhando com javascript, que roda internamente sob controle de um browser, os desafios podem ser ainda maiores, já que o browser pode estar manipulando inúmeras páginas simultaneamente.

Conseguir essa fluidez, bastante característica em jogos, onde sons e imagens fluem naturalmente, exige um controle de programação bastante avançado, utilizando recursos de hardware que, nem sempre, estão disponíveis para aplicações web, que são impedidas de acessar ao hardware diretamente.

Para contornar estes problemas, programas que manipulam informações com variação contínua no tempo, precisam levar em conta que as atualizações não vão ocorrer a intervalos regulares e, a cada interação, precisam conhecer o horário exato e renderizar a página de de acordo com o horário. Em jogos, por exemplo, embora diferentes computadores executem o jogo com atualização de tela em diferentes FPS (frames por segundo), todos eles exibem o movimento da mesma forma, interferindo apenas no conforto visual.

Arthur Heinrich

Arthur Heinrich
Responder

Gostei + 1

Mais Posts

06/05/2025

Jeronimo Queiroz

Sim. Utilizo windows. Com Linux isso "melhora"?
Melhor criar um aplicativo .exe?
Responder

Gostei + 0

06/05/2025

Jeronimo Queiroz

Eu não conheço javascript muito bem, mas creio que, qualquer que seja a linguagem, o mecanismo de funcionamento seja semelhante.

,.


Sim. Utilizo windows. Com Linux isso "melhora"?
Melhor criar um aplicativo .exe?
Responder

Gostei + 0

07/05/2025

Arthur Heinrich

Sugiro dar uma olhada neste artigo.

https://www-sitepoint-com.translate.goog/creating-accurate-timers-in-javascript/?_x_tr_sl=en&_x_tr_tl=pt&_x_tr_hl=pt&_x_tr_pto=tc
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar