'History'에 해당되는 글 1건

  1. 2014.08.14 html5 해시 및 히스토리 관리

html5 해시 및 히스토리 관리

Posted by 단순대왕 HTML5 : 2014. 8. 14. 15:44

hashchange 이벤트

- hashchange 이벤트는 같은 페이지 안에서 해시(#)만 바뀌었을 때. 즉, 페이지에서 id가 있는 요소로

  이동했을 때 발생합니다.

예) window.addEventListener('hashchange', function(url, callback) { });


pushState()

- 해당 URL의 상태를 저장

- history.pushState(Object statedata, String title, [String url] /*같은 도메인의 웹 페이지*/)


Manipulating the browser history

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history


popstate 이벤트

- pushState() 를 사용하여 저장한 상태값을 가져온다.


예) 

history.pushState({data:count}, 'Push State', '#'+count /* URL의 hash 값 index.html#2 */);

$(window).on('popstate', function(event){

if(event.originalEvent.state){

/* URL index.html#2 의 event.originalEvent.state.data값은 2 */

$('h1').text('Count - ' + event.originalEvent.state.data);

}

});


예) ajax 요청을 사용하는 페이지의 뒤로 가기인 경우,

tweeter_search_pushState_popstate.html


history.pushState(data, 'Search-'+ keyword, '#search?keyword='+keyword);

로 상태값을 저장한다.

이후 뒤로 가기를 할 때

if (event.originalEvent.state) {  

event.originalEvent.state.results.forEach(function (item) {

      var output = '';

output += '<h4>' + item.from_user + '</h4>';

output += '<p>' + item.text + '</p>';

output += '<hr />';

$('#content').append(output);

});

}

를 사용하여 ajax를 재요청하지 않는다.



'HTML5' 카테고리의 다른 글

html5 오프라인 어플리케이션  (0) 2014.08.28
html5 Drag Drop  (0) 2014.08.28
html5 File & Blob 객체  (0) 2014.08.28
html5 Web Worker  (0) 2014.08.27
html5 기본 기능과 벤더 프리픽스 제거  (1) 2014.08.12
  
 «이전 1  다음»