[컴][웹] GWT 사용하기 - History





GWT history

다른 Ajax history 와 원리가 같다.(RSH, Really Simple History)

기본 전제는 url framgment id(http://url/page#hello) 안에서 internal state 를 계속 추적하는 것이다.

fragment 를 update 하는 것은 일반적으로 page 를 reload 시키지 않는다.

그래서 bookmark 를 할 수도 있다.

application 은 unique 한 history token 을 만들 수 있다.

이 token 은 간단한 string 이다. application 이 이 token 을 parsing 해서 특정 state 를 return 해준다.

아래 같은 모양으로 full url 이 browser history 에 저장된다.
http://www.example.com/HistoryExample.html#page1

application 에서 browser 의 history stack 에 history 를 추가하려면 아래처럼 token 을 추가 하면 된다.

  • History.newItem(token)


user 가 back button 을 누르면,
History.addValueChangeHandler()로 추가한 ValueChangeHandler() 가 호출되게 된다.



targetHistoryToken

기본적으로 GWT 는 <prefix>:<token> 을 history token 으로 사용한다.[ref. 2] <prefix> 는 따로 정해주지 않으면 default 로 Place class name 을 사용하게 된다.
그래서 Hyperlink 에서 targetHistoryToken 을 적어줄 때도 위와 같은 형식으로 적어줘야 한다.

<g:Hyperlink ui:field = "newTaskLink" targetHistoryToken='NewTaskPlace:newTask'>New Task</g:Hyperlink>



사용법

host HTML page 에 아래 부분 추가
<iframe src="javascript:''"
          id="__gwt_historyFrame"
          style="position:absolute;width:0;height:0;border:0"></iframe>

ValueChangeHandler 를 implement 한 object 를 하나 만들고,
ValueChangeEvnet.getValue() 로 token 을 가져와서 parse 를 하고, 이렇게 얻어온 state 와 관련된 화면을 보여주도록 한다.

아래 예제를 참고하자.



See Also

  1. http://i5on9i.blogspot.kr/2014/03/gwt-history-places.html
  2. Hyperlink with PlaceHistoryMapper





댓글 없음:

댓글 쓰기