다른 탭·화면 꺼짐에서 타이머가 늦거나 안 울리는 이유
브라우저는 숨은 탭에서 되풀이되는 작업을 늦추고(크롬은 조건에 따라 1분에 한 번만 확인), 휴대폰 화면이 꺼지면 페이지를 아예 멈추기도 해요. 그래서 1초마다 숫자를 하나씩 빼는 웹 타이머는 늦게 울리거나 멈춰요. 끝나는 시각을 기준으로 계산하고 끝나는 순간에 한 번만 알람을 걸면 숨은 탭에서도 제때 울려요. 다만 창을 닫거나 기기가 잠들면 어떤 웹 타이머도 울리지 않아요.
숨은 탭에서 타이머가 늦어지는 규칙(크롬)
크롬 개발 문서에 따르면 탭이 숨어 있을 때 페이지의 타이머(setTimeout·setInterval)는 단계별로 늦춰져요(2026-10-14 확인).
- 페이지가 보이거나, 최근 30초 안에 소리를 냈으면: 거의 늦추지 않아요. 소리 없는 오디오는 치지 않아요.
- 그렇지 않으면: 타이머를 1초에 한 번 몰아서 확인해요.
- 숨은 지 5분이 넘고, 타이머를 이어서 다섯 번 이상 걸었고, 30초 넘게 조용하면: 1분에 한 번만 확인해요(크롬 88부터).
1초마다 다음 1초를 예약하는 방식(남은 시간에서 1씩 빼기)의 타이머는 이 세 번째 경우에 걸리기 쉬워요. 다른 탭에 5분 넘게 있으면 숫자가 1분씩 건너뛰고, 끝나는 소리도 1분 가까이 늦을 수 있어요. 사파리·파이어폭스의 숫자는 이 문서에 없어서 여기 적지 않았어요.
휴대폰 화면이 꺼지면 아예 멈출 수 있어요
크롬 문서는 브라우저가 CPU·배터리를 아끼려고 페이지를 멈춘 상태로 둔다고 설명해요(문서의 말로는 '얼림, frozen'). 멈춰 있는 동안에는 페이지의 타이머가 돌지 않아요. 휴대폰에서 다른 앱으로 가거나 화면이 꺼지면 이런 일이 생길 수 있고, 몇 초 뒤에 멈추는지는 브라우저마다 달라서 여기 적지 않았어요.
제때 울리게 만드는 법
- 끝나는 시각으로 계산하기. '남은 시간 = 끝나는 시각 − 지금'으로 매번 다시 구하면, 화면이 늦게 그려져도 틀린 숫자가 나오지 않아요.
- 끝나는 순간에 한 번만 알람 걸기. 1초마다 다시 예약하는 방식이 아니라서 '1분에 한 번' 규칙에 걸리지 않고, 숨은 탭에서도 1초 안팎으로 울려요.
- 새로고침에 대비해 끝나는 시각 적어 두기. 다시 열었을 때 이어 가거나, 이미 끝났으면 몇 분 전에 끝났는지 알릴 수 있어요.
- 휴대폰은 화면 켜 두기. 브라우저의 화면 켜 두기 기능(Screen Wake Lock)은 크롬 84, 사파리 16.4, iOS 사파리 18.4, 파이어폭스 126부터 돼요(MDN 호환표).
한바퀴 타이머는 1~3번을 그대로 쓰고, 4번은 '화면·소리 설정'에서 켤 수 있어요.
그래도 안 되는 것
창을 닫거나, 브라우저를 끄거나, 컴퓨터가 잠자기에 들어가면 웹페이지는 소리를 낼 수 없어요. 아침 기상처럼 놓치면 안 되는 알람은 휴대폰의 기본 알람 앱이 맞아요.
다른 탭으로 가 보고, 제때 울리는지 직접 확인해 보세요.
타이머 열기글에 틀린 곳이 있거나 바뀐 기준을 아시면 contact@lumenlab.page로 알려 주세요. 확인해서 고치고, 고친 날을 이 글에 적어요.