2019. 7. 11. 10:55ㆍlanguage/jquery
ajax를 활용해서 비동기로 페이지 이동 시 뒤로가기를 구현해 보고자 한다.
먼저 비동기로 페이지 이동하는 방법에 대해서는 다음 링크를 참고한다.
위 포스팅에서 작성한 화면을 깜빡이지 않고 전환하는 방법에서 일부 소스를 추가했다.
html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<html>
<body>
<div id="gnb"></div>
<div id="lnb"></div>
<div id="bodyContents"></div>
<input type="button" value="페이지 이동" onclick="acyncMovePage('/test/test.do')">
</body>
</html>
<script>
function acyncMovePage(url){
// ajax option
var ajaxOption = {
url : url,
async : true,
type : "POST",
dataType : "html",
cache : false
};
$.ajax(ajaxOption).done(function(data){
// url history 등록
history.pushState(null, null, url + "?" + params);
// Contents 영역 삭제
$('#bodyContents').children().remove();
// Contents 영역 교체
$('#bodyContents').html(data);
});
}
$(window).on('popstate', function(event) {
window.location = document.location.href;
});
</script>
|
cs |
27# : history.pushState() 함수를 활용해서 이동한 페이지 주소를 history 에 추가한다.
36# : window.popstate 이벤트가 발생할 때 페이지 전환을 한다.
history.pushState() 함수는 다음 포스팅을 참고한다.
여기서 중요한 것은 window.popstate 이벤트 이다.
history.puthState() 함수나 history.replaceState() 함수에 의해서 history 엔트리가 생성(추가) 되면 popstate 이벤트의 state 속성은 history 엔트리의 state 객체의 복사본을 가지게 되는데 이 때 document의 두개의 history 엔트리에서 변화가 일어날 때 window.popstate 이벤트가 발생한다.
필자는 위 내용을 브라우저의 뒤로가기 버튼이나 history.back() 호출 시 이동할 history 가 history.puthState() 함수로 추가한 history일 경우에 window.popstate 이벤트가 발생한다고 이해했다.
popstate이벤트 내부에서 뒤로가기를 비동기로 구현할 수 도 있다.
필자는 이를 비동기로 구현했다가 스크립트 문제가 발생해서 사용하지 않았다.
끝 ~
'language > jquery' 카테고리의 다른 글
jquery ajax 옵션 총정리 (0) | 2019.07.19 |
---|---|
jquery ajax 화면 동적 전환, 깜빡임 없이 페이지 이동 (0) | 2019.07.11 |
jquery FormData를 Json으로 변환 (0) | 2019.07.11 |
jquery load 화면 동적 전환, 깜빡임 없이 페이지 이동 (0) | 2019.07.03 |
jquery modal 새로고침, 동적 호출, 멀티 호출 (0) | 2018.10.23 |
jquery 드래그 앤 드롭 파일 업로드 (28) | 2018.04.25 |
onbeforeunload 를 활용하여 페이지 이동 시 프로그레스바, 로딩바 생성 (0) | 2017.06.02 |
browser.msie 정의되지 않음 또는 null 참조인 'msie' 속성을 가져올 수 없습니다. (0) | 2016.12.15 |
jquery javascript 문바열 바이트 체크 / 영문 한글 특수문자 등 / length / maxlength (0) | 2016.12.06 |
page swiper plugin 추천 / 페이지 슬라이드 / 이미지 슬라이드 / 탭 슬라이드 / jquery mobile 호환 (0) | 2016.07.08 |