O Cronômetro

Como funciona um despertador online no navegador

Um despertador online é uma página que confere, a cada segundo, se o relógio já alcançou o horário que você escolheu. Quando alcança, toca um som em loop, mostra um aviso em tela cheia e pode enviar uma notificação. Tudo roda dentro do navegador, por isso a aba precisa continuar aberta até o alarme tocar.

O que acontece quando você clica em ativar?

O clique libera o som, salva o alarme e prepara a tela, tudo de uma vez. Os navegadores bloqueiam áudio que começa sozinho: o Chrome só permite som automático depois que a pessoa interage com o site, e um contexto de áudio criado antes disso fica suspenso até um gesto. Por isso o despertador aproveita o seu clique para destravar o áudio que vai tocar horas depois.

No mesmo instante, o alarme vai para o armazenamento local do navegador e para o endereço da página. É por isso que um alarme ativo sobrevive a uma recarga e que dá para salvar o link de um horário, como o de despertar às 6:30, e abri-lo pronto no dia seguinte.

O despertador também pede ao sistema para manter a tela acesa enquanto houver alarme ativo e a página estiver visível. Esse pedido usa a Screen Wake Lock API, que funciona nas versões atuais de Chrome, Edge, Firefox e Safari e é liberada automaticamente quando a aba some da tela. A permissão de notificação é opcional e só aparece depois do seu clique, nunca ao abrir a página.

Como a página sabe que chegou a hora?

A página confere o relógio uma vez por segundo e dispara quando a hora atual é igual ou maior que o horário marcado. Parece detalhe, mas separa o alarme que toca atrasado do alarme que não toca: um código que espera “exatamente 06:30:00” perde o horário se o navegador pular aquela verificação; um código que pergunta “já passou de 06:30?” toca na primeira verificação depois do horário.

O mesmo raciocínio vale para quem programa um único temporizador até o alvo, do tipo “toque daqui a 8 horas”. Se o computador dormir no meio da noite, esse temporizador fica parado e a conta se perde. Comparar a cada segundo com o relógio real é mais robusto: quando o sistema acorda, a primeira verificação já percebe que o horário passou.

Quando o disparo acontece mais de 60 segundos depois do previsto, a tela de alarme do O Cronômetro mostra “atrasado há” seguido do tempo de atraso. Assim você sabe que o alarme tocou tarde e quanto tarde.

O que acontece na hora do alarme?

Na hora marcada, o despertador abre uma tela cheia com o título e a hora do alarme, toca o som em loop, com Repetir o som ligado, que é o padrão, e faz o título da aba piscar. Com o volume gradual, o som começa baixo e sobe aos poucos, e ele para sozinho depois de 10 minutos se ninguém interagir. Se você liberou notificações, o aviso também aparece por cima de outras janelas.

Na tela de disparo há dois botões: soneca, que adia o alarme por 5, 10 ou 15 minutos conforme a configuração, e parar. Alarmes com dias da semana marcados já ficam agendados para a próxima ocorrência.

De onde vem a hora que o despertador usa?

A hora vem do relógio do seu aparelho, corrigida por uma referência externa sempre que há conexão. O relógio de um celular ou computador pode estar alguns segundos adiantado ou atrasado. O Cronômetro mede essa diferença comparando o aparelho com a hora servida pela borda da Cloudflare, cujo desvio em relação ao NTP.br é medido a cada 5 minutos por um servidor do O Cronômetro. O NTP.br é o serviço do NIC.br que distribui a Hora Legal Brasileira, mantida pelo Observatório Nacional.

O despertador usa essa hora corrigida, então um aparelho 2 minutos adiantado não faz o alarme tocar 2 minutos antes. A página de hora certa mostra a fonte em uso e a precisão estimada, e o guia como medimos a hora certa explica a cadeia completa.

O que muda quando a aba fica em segundo plano?

O alarme continua funcionando em segundo plano, mas o navegador passa a conferir o relógio com menos frequência para economizar bateria. O Chrome segue três níveis desde a versão 88, de janeiro de 2021: com a página visível, os temporizadores rodam quase no tempo pedido; com a página oculta, uma vez por segundo; oculta há mais de 5 minutos, em silêncio há mais de 30 segundos e com temporizadores encadeados, uma vez por minuto.

Na prática, numa aba esquecida do Chrome o som toca na hora, porque foi agendado no áudio do navegador no clique em ativar, mas a tela de alarme e a notificação podem chegar até cerca de 1 minuto depois do horário. Segundo a documentação da MDN, o Firefox para computador limita abas inativas a um disparo por segundo, enquanto o Firefox para Android usa intervalo mínimo de 15 minutos e pode descarregar a aba. Para a tela também chegar na hora, deixe a aba do despertador visível.

Além de espaçar verificações, o navegador pode congelar uma aba oculta, e nada roda até ela voltar, ou descartá-la para liberar memória, e a página recarrega quando você volta. A documentação da Page Lifecycle API, do Chrome, descreve os dois estados e afirma que os navegadores já congelam e descartam abas ocultas quando os recursos do sistema ficam escassos.

Situação O alarme toca? O que esperar
Aba visível Sim No segundo marcado
Aba em segundo plano há menos de 5 minutos Sim Atraso de até 1 segundo
Aba oculta há mais de 5 minutos, no Chrome Sim Som na hora; tela e notificação com até cerca de 1 minuto de atraso
Janela minimizada Sim Mesmas regras da aba em segundo plano
Computador em suspensão Só quando ele acordar Aviso “atrasado há” na tela
Celular com a tela bloqueada Não é garantido O sistema pode pausar o navegador
Aba ou navegador fechado Não Nenhum código roda

O que o despertador guarda no seu aparelho?

O despertador guarda tudo no próprio navegador e não envia seus alarmes para servidor algum. Hora, título, som, soneca e dias da semana ficam no armazenamento local; um som próprio que você escolhe no seu aparelho fica no IndexedDB, um banco de dados interno do navegador. Não há cadastro nem conta.

A consequência prática é que cada navegador tem a sua lista. Um alarme criado no Chrome do notebook não aparece no celular, e limpar os dados do site apaga os alarmes salvos. Para levar um alarme de um aparelho a outro, copie o link da página com o alarme ativo. No outro aparelho, toque em Confirmar alarme para repetir nos dias da semana.

Como testar o despertador antes de dormir?

O teste mais confiável é ativar um alarme para daqui a 2 minutos e esperar tocar com a aba em segundo plano. Assim você confere de uma vez o volume, a saída de som e a notificação. O despertador também tem um botão de teste que toca o alarme na hora, em 1 clique.

Antes de dormir, confirme ainda três coisas: o computador está na tomada, a suspensão automática está desligada e não há fone Bluetooth conectado roubando o som. Se algo falhar, o guia despertador online não tocou lista as causas mais comuns com a correção de cada uma.

Perguntas frequentes

O despertador online precisa de internet para tocar?

Não. Depois que a página e o som escolhido carregam, a contagem e o áudio rodam no seu aparelho. A internet só serve para conferir a hora certa de tempos em tempos; sem conexão, o alarme segue o relógio do aparelho.

Quantos alarmes posso deixar ativos ao mesmo tempo?

No despertador do O Cronômetro, vários. Cada alarme tem hora, título, som, soneca de 5, 10 ou 15 minutos e dias da semana, e todos são conferidos pelo mesmo relógio enquanto a aba estiver aberta.

O alarme continua ativo se eu recarregar a página?

Sim. Os alarmes ficam salvos no armazenamento local do navegador e voltam quando você reabre a página no mesmo aparelho. Depois de reabrir, faça um teste: alguns navegadores só liberam o som após um clique na página.

Posso usar o despertador online no celular?

Pode, com a página visível e a tela ligada. O despertador pede ao sistema para manter a tela acesa enquanto há alarme ativo; com a tela bloqueada, o celular pode pausar o navegador para poupar bateria.

Por que o alarme às vezes toca com atraso?

Em aba de fundo, os navegadores espaçam as verificações para economizar energia. No Chrome, uma aba oculta há mais de 5 minutos e em silêncio é verificada uma vez por minuto. O som não depende dessas verificações: fica agendado no áudio do navegador desde o clique em ativar e toca na hora; a tela de alarme e a notificação é que podem chegar até cerca de 1 minuto depois.

Fontes

  1. Heavy throttling of chained JS timers beginning in Chrome 88 (Chrome for Developers) developer.chrome.com
  2. Window: setTimeout(), seção sobre abas inativas (MDN Web Docs) developer.mozilla.org
  3. Autoplay policy in Chrome (Chrome for Developers) developer.chrome.com
  4. Screen Wake Lock API (MDN Web Docs) developer.mozilla.org
  5. Page Lifecycle API (Chrome for Developers) developer.chrome.com
  6. NTP.br: hora certa sincronizada com a Hora Legal Brasileira (NIC.br) ntp.br

Atalhos de teclado

Desligados, Espaço, Enter e Esc continuam valendo.

Cronômetro e timer

Espaço
Iniciar ou pausar
L
Marcar uma volta (cronômetro)
R
Zerar
Ctrl+Z
Desfazer o Zerar do cronômetro (por 6 s)

Despertador

Enter
Ativar o alarme
Espaço
Parar o alarme que está tocando
S
Soneca

Em qualquer página

F
Tela cheia
T
Trocar o tema: claro, escuro ou OLED
?
Mostrar estes atalhos
Esc
Fechar janela ou sair da tela cheia