2011년 6월 10일 금요일

Javascript session

웹 브라우저로 다른 페이지에 접속을 해도 이전 페이지에서 저장한 값들에 접근할 수 있는 방법 중에 하나가 session 을 사용하는 방법이다.

하지만 javascript 는 서버측 session 을 조작하거나 javascript 에서만 사용할 수 있는 session API 는 존재하지 않는다.

예를 들어 인터넷 라디오 웹 사이트를 제작한다고 했을 때 채널 리스트 페이지에서 채널을 선택하면 플레이어 페이지로 이동한다고 가정하자.
플레이어 화면에서 이전 페이지로 넘어가면 마지막 선택한 항목이 하이라이트되어 있어야 한다.
만약 웹 브라우저에서 이전 페이지로 이동시 마지막 상태를 복원해 준다면 다행이겠지만 그렇지 않거나 채널 목록을 ajax 로 로드하는 경우 등 그럴 수 없는 상황에서는 선택한 채널의 이름을 어딘가 페이지 이동간에도 지워지지 않는 공간에 저장할 필요가 있다.

window.name 값을 읽고 쓰는 방법으로 session 을 흉내낼 수 있다.
참조: http://blogs.sitepoint.com/javascript-session-variable-library/

window.name 에 스트링으로 값을 읽고 쓰고 할 수 있고 페이지 이동간에도 값은 바뀌지 않는다.

저장하려는 값이 많고 복잡한 경우 json(javascript 코드를 스트링으로 변경 또는 반대로 변경 가능한 포맷) 을 이용하여 javascript 코드를 스트링으로 변경하여 값을 저장하고 읽을 때는 javascript 코드로 변경하는 방법을 사용한다.
참조: http://blogs.sitepoint.com/javascript-json-serialization/

아마도 iframe 태그를 사용하거나 frame 을 사용하는 경우 window.name 값이 각 페이지 마다 다를 수 있다.
이런 경우 window.top.name 에 값을 저장한다.

댓글 없음:

댓글 쓰기