
579
15.10 위치, 내비게이션, 히스토리
History 객체에는
replaceState()
메서드도 있습니다. 이 메서드는
pushState()
메
서드와 같은 인자를 받지만 히스토리에 상태를 추가하는 게 아니라 새로운 상태로
교체합니다.
pushState()
를 사용하는 애플리케이션을 처음 불러올 때는
replace
State()
를 사용해 초기 상태에 대응하는 상태 객체를 정의하는 편이 좋을 때가 많
습니다.
사용자가 뒤로 가기나 앞으로 가기 버튼을 눌러서 저장된 상태로 이동하면 브라
우저는 Window 객체에서
popstate
이벤트를 일으킵니다. 이 이벤트의 이벤트 객
체에는
pushState()
에 전달한 상태 객체의 또 다른 구조화된 클론 사본인
state
프
로퍼티가 있습니다.
예제 15-9는 그림 15-15에 나타난, 단순한 숫자 맞추기 게임입니다. 이 게임은
pushState()
를 사용해 히스토리를 저장하고 사용자가 제출한 답을 다시 보거나 다
시 시도할 수 있습니다.
history.pushState()
JSON.stringify()
history.pushState()
...