AJAX에서 많이 사용하는 응용 프로그램이 있습니다. 그러나 탐색 기능이 필요합니다. URL을 스푸핑하기 위해 URL을 생성하기 위해 location.hash를 변경하려고합니다. 하지만 내가/fwd를 사용하면 URL 만 변경되지만 페이지는 다시로드되지 않습니다. 페이지를 다시로드하려면 어떻게해야 hstory.back을 무시할 수 있습니까?Ajax 응용 프로그램에 대한 back/fwd 키 이벤트 활성화
답변
뒷 사건을 정확하게 포착 할 수는 없지만 이러한 문제의 대부분은 해결되었습니다. 또한 좋은 점은 입니다.
really simple history (RSH라고도 함)을 살펴보고 구현하거나 작동시켜 작동 방식을 확인하십시오.
이 동작을 구현하기 위해 연속 폴링 이외의 다른 방법을 모른다. 구현은 다음과 같습니다
var lastHash = '';
function pollHash() {
if(lastHash !== location.hash) {
lastHash = location.hash;
// hash has changed, so do stuff:
alert(lastHash);
}
}
setInterval(pollHash, 100);
감사합니다. 매우 유용합니다. 즉시 호출 한 함수 명령문에 전체 표현식을 래핑하고 해당 함수의 리턴 값이 작성한 함수가 될 경우 작은 개선 사항을 추가 할 수 있습니다. 이렇게하면 전역 바인딩을 제거 할 수 있습니다. –
이것이 Török이 말한 것입니다. 잘 작동하는 것 같습니다. 캡슐화로 인해 조금 더 청결한 느낌. var hashChecker = function() { \t lastHash = location.hash; \t 복귀하여 setInterval (함수() { \t 경우 (lastHash ==에 location.hash) { \t \t lastHash에 location.hash =;! \t \t }}, 50); }() –
이 질문에 대한 대답은 이러한 질문에 대한 내 대답으로 다소 동일합니다 :
요약하면, 전체 해시 변경 프로세스를 설명하고 아약스와 함께 사용하는 두 개의 프로젝트는 다음과 같습니다.
jQuery History (페이지 상태를 관리하고 페이지를 업데이트하기 위해 변경 사항에 바인딩하기 위해 해시 사용).
jQuery Ajaxy (jQuery History의 ajax 확장자로 완전 아약스 웹 사이트를 완벽하게 방해하지 않고 자연스럽게 분해 가능).
balupton 답변은 정말 훌륭합니다.
그러나 아약스 요청을 처리 할 다른 jQuery 플러그인도 있습니다 (address).
질문의 제목을 조금 더 구체적으로 바꾸고 싶을 수 있습니다. 어때요 "사용자가 브라우저의 뒤로 버튼을 클릭하면 아약스와 페이지를 다시로드"또는 이와 비슷한 무엇입니까? –