하지만 페이스북은 제가 다른 탭을 보다가 페이스북에 돌아오는 순간 새로운 내용들이 업데이트되는 것이 꽤 인상적이었습니다. 바로 업데이트 되는 것으로 보아 polling으로 미리 데이터는 땡겨온 다음에 사용자가 페이스북 탭을 다시 보는 순간 화면에 업데이트만 해주는 구조로 추측됩니다. 프론트앤드 개발을 전문적으로 하지는 않지만 이런 이벤트에 대해서는 알고 있지 못했기 때문에 상당히 특이하게 보았고 지난 주말에 해당 부분을 테스트 해보았습니다. (사실 이 생각을 한지는 꽤 되었는데 귀찮아서 놔두고 있다가 nephilim님의 도움으로 찾아봤습니다.)
window.addEventListener('focus', function() {
console.log('사용자가 웹페이지에 돌아왔습니다.')
}, false);
서론은 길었습니다만 코드는 아주 간단합니다. window에 focus를 등록해주면 사용자가 브라우저의 다른 탭을 사용하다가 해당 탭에 돌아왔을때나 다른 프로그램을 사용하다가 브라우저로 돌아왔을때 모두 focus이벤트가 잘 발생하고 있습니다.(물론 위 코드는 focus를 건다는 것만 보여주려고 표준에 맞춰 작성한 것이기 때문에 IE에서는 동작하지 않습니다.)
윈도우 포커스 이벤트이면 탭은 물론이고 뭐 주소창이나 메뉴 같은거 갔다가 와도 발생하겠군요 ㅋㅋㅋ blur 떠날때 멈추었다가 다시 focus 일때 실행한다던가;; 뭐 이런 콤비도 가능하겠군요!!! 역시 자습의 대가이시군요!! ㅋㅋㅋ
사용자가 페이지를 볼려고 한다는 것을 상당히 명확히 알수 있는 이벤트인듯.... 코드는 간단하지만 고민해 보면 활용할 곳은 좀 있어보임.. ㅎ
js의 진짜 대가들 좀 소개시켜줄까? ㅋㅋㅋㅋ
Douglas Crockford 나 John Resig 정도 되나요 ? ;;
SF에 있는 구루들 주소 알려주려고 했지.. ㅋㅋㅋㅋ
거진 SF에 있는듯? ㅋ