Vai al contenuto principale

Timer che funzionano in una scheda in background (e perché alcuni non lo fanno)

3 min di lettura
Timer che funzionano in una scheda in background (e perché alcuni non lo fanno)
Foto di ian dooley / Unsplash

Il problema del throttling

I browser risparmiano energia limitando il JavaScript nelle schede in background, e ogni browser traccia la soglia in modo diverso. I frame di animazione si fermano quasi subito, quindi qualunque timer costruito su un ciclo visivo deriva o si blocca. I timer costruiti sull'ora del sistema, dove il conto alla rovescia è calcolato dall'ora effettiva anziché da secondi contati, tengono il tempo con precisione anche quando la scheda è limitata, perché il browser la sveglia periodicamente per controllare.

Cosa sopravvive in background

I timer basati su setInterval vengono limitati a circa una volta al secondo o peggio nelle schede in background, ma continuano comunque a scattare, ed è per questo che un timer ben costruito resta in funzione e soffre solo l'animazione fluida delle cifre. Gli avvisi audio sono l'altro rischio: alcuni browser bloccano il suono nelle schede in background non visitate, a meno che la scheda non abbia già ricevuto un'interazione dell'utente. Una pagina timer che hai cliccato per avviarla ha interagito, quindi la sua sveglia suonerà; un timer che si avvia da solo non avrà la stessa fortuna.

Le notifiche come riserva

I timer browser più robusti scattano sia una sveglia in pagina sia una notifica di sistema, così l'avviso ti raggiunge anche se la finestra del browser è ridotta a icona o sei in un'altra applicazione. Il permesso per le notifiche viene richiesto al primo utilizzo. Per i countdown lunghi (un'ora o più, come una riunione o un ciclo di lavatrice) conta più della precisione; per gli intervalli brevi (cucina, round di esercizio) è l'allarme acustico a fare il lavoro e la notifica è un extra comodo.

Perché i telefoni sono un mix

I browser mobili limitano più duramente le schede in background di quelli desktop, e alcuni bloccano completamente lo schermo, il che può mettere in pausa o uccidere un timer web. Un timer web funziona bene su un telefono quando lo schermo resta acceso e la scheda è visibile; è lo strumento sbagliato per cronometrare un telefono in tasca. Per gli scenari in tasca vincono un'app nativa o un timer fisico. Sapere in quale scenario ti trovi prima di fidarti di qualsiasi conto alla rovescia.

Testa il tuo timer una volta

Imposta qualsiasi timer nuovo a 1 minuto, cambia scheda e aspetta. Se la sveglia suona entro pochi secondi dal minuto, il timer sopravvive al throttling e puoi fidarti. Se suona in ritardo o non suona affatto, hai imparato in due minuti ciò che altrimenti avresti imparato mentre la pasta andava in fuori. Il nostro timer supera questo test sui browser desktop e avvisa da una scheda in background, ed è proprio per questo che l'abbiamo costruito.

Strumenti

Il nostro timer online gratuito è costruito sull'ora del sistema e suona in modo udibile da una scheda in background su desktop. Testalo una volta con il trucco del minuto visto sopra, tieni il volume alto, e hai un conto alla rovescia che si comporta come un elettrodomestico, non come una pagina web.