본문 바로가기
IT/프로젝트

pushstate (ajax 뒤로가기)

by 봉즙 2020. 2. 6.

ajax 에서 뒤로가기를 활성화 시키기 위해서는 여러가지 방법이 있다.

앵커, pushstate, 해쉬뱅 등이 그 예이다.

 

pushstate는 HTML5 에서 새로 추가된 History API의 추가된 메서드이다.

 

$('#button').click(() => {
    $.ajax({
        url: "/freeBoard,
        data: {page: 1},
        type: "get",
        success: (result) => {
            $(".content").html(result);
        }
    });
    history.pushState({
        data: "/freeBoard",
        page: 1
    }, null, "/freeBoard?page=1");
});

이러한 방식으로 ajax 동작 이후 hisory.pushState로 history.pushState(data, title, url)을 넣어주면 된다.

이 부분 까지 진행한다면 url의 변화를 볼 수 있을 것이다.

state를 저장한 뒤 이벤트를 감지하여 불러오는 ajax를 만들어주면 페이지까지 전환이 된다.

//이벤트 감지해서 뒤로가기 불러오는 ajax
$(window).on('popstate', function (event) {
    const data = event.originalEvent.state;
    $.ajax({
        url: data.data,
        data: {page:data.page, type: data.type, keyword: data.keyword},
        type: "get",
        success: (result) => {
            $(".content").html(result);
            //alert(JSON.stringify(data));
            //검색 처리 위해서
            //$("#type").val(data.type||"t");
            //$("#keyword").val(data.keyword);

        }
    })
});

아래와 같이 넣어주었던 값을 읽어 올수 있다.

data.data에는 freeBoard가 저장되있을 것이다. 검색처리 등의 경우 위의 주석과 같이 추가해줄 수 있다.

'IT > 프로젝트' 카테고리의 다른 글

모달 외부 JSP에서 불러오기  (0) 2020.03.19
국제화 JSP 이용  (0) 2019.12.02
KakaoPay  (1) 2019.09.30
공공API 데이터 파싱 후 db  (0) 2019.09.04

댓글