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
- Heavy throttling of chained JS timers beginning in Chrome 88 (Chrome for Developers) developer.chrome.com
- Window: setTimeout(), seção sobre abas inativas (MDN Web Docs) developer.mozilla.org
- Autoplay policy in Chrome (Chrome for Developers) developer.chrome.com
- Screen Wake Lock API (MDN Web Docs) developer.mozilla.org
- Page Lifecycle API (Chrome for Developers) developer.chrome.com
- NTP.br: hora certa sincronizada com a Hora Legal Brasileira (NIC.br) ntp.br