Back Forward Cache 란 브라우저의 뒤로가기시 브라우저가 단일 세션내에서 자바스크립트 상태 및 웹 페이지를 전체를 캐싱함으로써 전체적은 응답속도를
빠르게 동작하기위해 사용되는 캐시입니다. 이 캐시는 페이지에 대한 추가적인 로딩을 하지않고 자바스크립트 상태 까지 유지하고 있기 때문에 페이지 로딩시 반드시 한번 호출되어야 하는 자바스크립트가 있다면 호출되지 않기 때문에 문제가 발생할 수 있습니다.
window.onpageshow = function(event) { if ( event.persisted || (window.performance && window.performance.navigation.type == 2)) {
// Back Forward Cache로 브라우저가 로딩될 경우 혹은 브라우저 뒤로가기 했을 경우 // 이벤트 추가하는 곳 } } 결과는 아주 잘된다. 대만족0. 들어가기 전에 HTML5에서는 history/state라는 페이지에 대한 상태를 저장하는 기능이 있습니다. pushState나 replaceState등을 이용해서 페이지를 나누고 값을 추가해서 던져주는등 단일 페이지에서 URL을 다르게 주기 위해서 많이 사용하는 기능이지만 여기에서는 뒤로가기를 할 때 발생되는 이벤트를 제어하기 위해서 사용하는 케이스를 짤막하게 소개해 봅니다. 1. HTML5에서의 뒤로가기 체크 이벤트 호출
특정 페이지 혹은 전 페이지에서 뒤로가기를 할 때 뒤로가기가 아니라 새로고침을 하고 싶다면 아래와 같은 식으로 사용 할 수 있습니다.
browserstate/history.js History.js gracefully supports the HTML5 History/State APIs (pushState, replaceState, onPopState) in all browsers. Including continued support for data, titles, replaceState. Supports jQuery, MooTo... github.com browserstate/history.js history.js - History.js gracefully supports the HTML5 History/State APIs (pushState, replaceState, onPopState) in all brows... github.com 위와 비슷하게 짠다면 아래와 같이 쓸 수 있습니다.
+ 2016-03-14 추가 history/state를 쓸 경우 POST에 대한 이슈가 있습니다. history/state를 걸어둔 페이지는 새로고침을 하게 되면 항상 GET으로 넘어가게 됩니다. POST로만 접속 가능하게 만들었을 경우 접속이 안되거나 POST로 넘겨준 데이터가 날아가는 이슈가 있을 수 있습니다. 출처: https://naly3512.tistory.com/2623 [행복의 시작] 티스토리 뷰브라우저에서 뒤로가기 시 크롬을 제외한 브라우저에서는 BFCache[https://developer.mozilla.org/en-US/docs/Working_with_BFCache]로 인해 뒤로가기 시에는 자바스크립트가 다시 불리지 않는다. history.back 이벤트 발생 시 함수를 실행하기 위해서는 아래의 코드를 사용하면 된다. None jQuery
jQuery
댓글
|