NOTE
ViewLoadController.java
- MemberViewLoadController.java
- IssueViewLoadController.java
- MileStoneViewLoadController.java
...
Button
페이지에서 버튼 클릭
- ajax 호출
- URL : view/... (view/member/... || view/issue/...)
- dataType : Html
→ ViewLoadController.java
- return view (member.jsp || issue.jsp)
→ {view}.jsp (return 받은 {view} 페이지)
- .ajax 호출
- URL : .../restapi/... (/restapi/project/issues)
- dataType : json
→ MemberREST.java
- return map<String, Object>
URL
주소창에 직접 입력
- Controller로 이동.
→ URLMapper.java
- return "view/template/project"
- tiles.xml
→ member.js
- memberMovePageHistory()
history.pushState(data, null, url);
- memberMovePage()
- .ajax 호출
- URL : "/view/member/";
- return html
여기서부터 Button 과정 다시 반복.
→ ViewLoadController.java
- return view (member.jsp || issue.jsp)
→ {view}.jsp (return 받은 {view} 페이지)
- .ajax 호출
- URL : .../restapi/... (/restapi/project/issues)
- dataType : json
→ MemberREST.java
- return map<String, Object>
Summary
비동기로 모든 페이지 처리
- 버튼 클릭 시 타는 Controller와 직접 주소창 기입 시 타는 Controller가 다르다.
- $(window).bind("popstate", function(event)로 뒤로가기도 따로 주어야 한다.
why?
- 비동기
- 상단의 주소창이 변하지 않음.
- 그래서 주소를 임의로 변경시키고 그 주소를 브라우저 뒤로가기에 저장.
Uploaded by Notion2Tistory v1.1.0