로컬 테스트 응용 프로그램에서 History.js를 구현했습니다. 모든 것이 작동하는 것처럼 보이지만 브라우저에서 뒤로 버튼을 누르면 이전 내용이 복원되지 않습니다.History.js에서 뒤로 버튼을 클릭 할 때 콘텐츠 복원
사용자가 뒤로 버튼을 누르면 내용을 수동으로 다시로드해야합니까 (즉, 다른 아약스 호출을해야하나요?). 그렇다면 github은 어떻게합니까? 코드 트리에서 뒤로 버튼을 클릭 할 때 다른 아약스 호출을하지 않는 것을 볼 수 있습니다.
History.Adapter.bind(window,'statechange',function()
{
var State = History.getState();
History.log(State.data, State.title, State.url);
});
$('a').each(function(index, link) {
if ($(link).attr('data-ajax-disabled') != 'true') {
$(link).click(function(event)
{
var clips = $(this).attr('data-ajax-clips') || '';
$.ajax($(this).attr('href'),
{
data: {_clips:clips},
success: function(data)
{
var data = $.parseJSON(data);
History.pushState({state:1}, data.title || document.title, 'http://127.0.0.1/site/www/');
$.each(data.clips, function(key, val)
{
$(key).replaceWith(val);
});
}
});
return false;
});
}
});
data.clips 키와 값으로 실제 HTML 콘텐츠로 HTML 객체의 아이디의 포함 된 JSON 배열입니다 :
여기 내 코드입니다. 예
'는 #header'=> '헤더 DIV 콘텐츠'바와 같이
들어, 여분 잘 작동한다. 헤더에 난수를 출력합니다. 링크를 클릭 할 때마다 헤더의 다른 임의의 숫자가 누출됩니다. 그러나 뒤로 버튼을 누르면 숫자가 그대로 유지되고 제목 만 복원됩니다 (임의의 숫자도 가능).
예, 다음은 사용자가 간다 때 올바른 내용을 표시 할 책임이 있습니다 : 나는 역사의 객체로 클립을 밀어 방법
그래서 완성도를 들어,이입니다 뒤로 또는 앞으로. 같은 내용에 대한 다른 AJAX 호출을 피하기 위해,'.hide()'를 사용하여 페이지에서 숨기거나 HTML을 변수에 저장 한 다음 필요할 때 다시로드 할 수 있습니다. –