2011-03-27 4 views
0
$('#Head a').click(function() 
{ 
    alert(""); 
    var link = $(this).attr('href'); 
    $.get(link, function(data) { 
     $('#NavDetailContent').html(data); 
     history.pushState(null, null, link); 
     e.preventDefault(); 
    }); 
    return false; 
}); 

$(window).bind("popstate", function() { 
    $.get(document.location, function(data) { 
     $('#NavDetailContent').html(data); 
     alert(""); 
    }); 
}); 

나는 히스토리 API를 없애고 있지만 다음과 같은 것을 발견했다. 기록 Api

  1. 내가 아닌 아약스 링크에 아약스 링크에서 이동하고 난 뒤 아약스에서했습니다 내용 만 클릭

    은 전체 페이지를 보여 없습니다. 그렇다면 왜 역사 API 때문인지 또는 무엇입니까 (이것은 모두 그 쇼가 끝난 것입니다) enter image description here

  2. popstste 이벤트가 실행 된 페이지를 새로 고침하면 어떻게됩니까? 이번에는 내가 아약스가 아닌 페이지에 있다면 요청을 실행하고 div에 내용을로드합니다. 나는 그것이 아약스 요청에도 아약스와 비 아약스에 대해 서로 다른 페이지를 표시하기 위해 내 단절 측에 신세를했지만 그것은 단지이 경우, 비 아약스 페이지를 보여줍니다 다른 모든 번이에

+1

좀 더 의미있는 제목을 선택할까요? –

+0

데모 페이지가 좋습니다 ... –

답변

0

잘 작동 프로젝트 https://github.com/defunkt/jquery-pjax 특수 HTTP 헤더를 사용하여이를 방지합니다. 이들은 AJAX 및 NONAJAX 콘텐츠를 생성하는 것과 같은 방법으로 사용하지만 서버 측에서 ajax를 사용하면 콘텐츠 arround가 생성되지 않습니다. 그래서 돌아 가면 특별한 HTTP 헤더없이 서버에 링크를 보내므로 페이지는 모든 대다수의 arround로 가득 차게 생성됩니다.