위치 해시 변경 감지 및 처리
Ajax 및 해시를 사용하여 웹 애플리케이션을 탐색하면 전체 문서를 다시 로드하지 않고도 페이지 간 원활한 전환이 가능합니다. 그러나 window.location.hash의 변경 사항을 감지하는 것은 어려울 수 있으며, 특히 브라우저의 뒤로 버튼을 사용할 때 더욱 그렇습니다.
기본 브라우저 지원
안타깝게도 브라우저는 기본적으로 지원하지 않습니다. 해시 변경을 감지하는 이벤트를 지원합니다. 해시가 변경되면 주소 표시줄이 자동으로 업데이트되지만 JavaScript는 이러한 변경 사항을 직접 모니터링할 수 없습니다.
setInterval을 사용한 Po 폴링
한 가지 잠재적인 해결책은 setInterval( ) 메서드를 사용하여 현재 해시를 주기적으로 확인하고 이전 값과 비교합니다. 차이가 감지되면 필요한 조치를 취할 수 있습니다. 이 방법은 효과가 있지만 비효율적일 수 있으며 모든 해시 변경 사항을 즉시 포착하지 못할 수도 있습니다.
jQuery 이벤트 추상화(업데이트된 답변)
애플리케이션에서 jQuery를 사용하는 경우 내장된 이벤트 시스템을 활용할 수 있습니다. jQuery는 브라우저별 지원 문제를 추상화하는 창 개체에서 'hashchange' 이벤트를 지원합니다.
jQuery의 'hashchange' 이벤트를 사용하면 다음과 같이 이벤트 리스너를 등록할 수 있습니다.
$(window).on('hashchange', function() { // Code to handle hash change });
그 뒤에서 jQuery는 'hashchange' 이벤트에 대한 기본 지원을 감지하고, 사용할 수 없는 경우 폴링 메커니즘을 사용하여 해시에서 이벤트를 트리거합니다. 변화. 이 접근 방식은 해시 변경 처리를 크게 단순화합니다.
위 내용은 JavaScript에서 위치 해시 변경 사항을 안정적으로 감지하고 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!