2014-11-21 4 views
1

내가 읽은 것부터 브라우저가 포커스를 잃었을 때 requestAnimationFrame이 알 수 있습니다. 이런 일이 발생하면 어떤 종류의 사건이 발생합니까? requestAnimationFrame과 관련하여 코드를 일시 중지하고 다시 시작하려고합니다.requestAnimationFrame - 브라우저가 포커스를 잃을 때 알려주기

+0

어디서 읽었습니까? 참조하시기 바랍니다. 'requestAnimationFrame'는 브라우저가 포커스를 잃었을 때 이벤트가 시작되는 요소가 아닙니다; 그냥 콜백을 설정합니다. 표준 동작은 브라우저/탭의 초점이 흐려지면 콜백이 일시 중지된다는 것입니다. 따라서 코드 (콜백에있는 경우)가 이미 일시 중지되었습니다. –

+1

내가 잘못 기억하고있을 수도 있지만 브라우저가 포커스를 잃을 때 requestAnimationFrame이 프레임 속도를 줄인다 고 생각했습니다. 이 질문이 맞지 않으면 질문을 수정하겠습니다. – Kahless

+0

정확한 동작은 브라우저에 따라 다르다고 생각합니다. 속도가 느려지거나 일시 중지 될 수도 있고, 잠시 후에 만 ​​일시 중지되었다는 주장을 보았을 수도 있습니다. 오직 엔진 개발자 만이 알고 있습니다. 몇 가지 검사를 할 수는 있지만 너무 게으른 검사입니다. –

답변

0

requestAnimationFrame은 브라우저에서 포커스를 잃을 때 이벤트를 발생 시키거나 실행할 수있는 요소가 아닙니다. 그냥 콜백을 설정합니다. 그러나 표준 동작은 브라우저/탭에 초점이 맞지 않으면 콜백이 일시 중지된다는 것입니다. 따라서 코드 (콜백에있는 경우)가 이미 일시 중지되었습니다.

모든 브라우저가 콜백을 일시 중지하지 않고 대신 속도를 느리게 할 수도 있습니다.

문서의 숨겨진 속성 ([페이지 가시성]) 거짓과 애니메이션 프레임 요청 콜백 목록이 비어 있지 때마다, 사용자 에이전트가 정기적으로 큐해야하지만, W3C spec는 둔화되지, 일시 정지를 의미하는 것 같다 작업 ...

d의 숨김 속성이 true이면 컨텍스트 목록의 다음 항목으로 계속 진행하십시오.

코드가 탭에서 벗어 났을 때 코드가 일시 중지되었는지 또는 일시 중지하려는 코드가 RAF 콜백의 일부로 구성되어 있지 않은지 확인하려면 Page Visibility API을 사용하십시오.

RAF 및 페이지 공개 API는 IE> = 10에서만 사용할 수 있습니다.

관련 문제