새로고침 없이 URL을 동적으로 변경하는 방법
네, 이것이 제가 하려는 것입니다(Google도 대부분 이 기능을 하고 있다고 생각합니다).
시나리오 A:
페이지 내/Main_Page
3개의 섹션이 있다고 칩시다.사용자가 섹션 A의 "링크"를 클릭하면section A
의 콘텐츠는 AJAX를 통해 로드되어 페이지에 삽입됩니다.
시나리오 B:
언제/Main_Page/Section_A
로딩되어 거의 같은 페이지로 이동합니다(시나리오 A와 같음)./Main_Page
로딩Section A
이전과 같이 AJAX 경유.
문제:
동일한 페이지가 2개 있지만 URL이 다릅니다(첫 번째 경우 이 페이지는/Main_Page
두 번째 단계에서는/Main_Page/Section_A
).
하고 싶은 일:
- 시나리오 A에서는 로드 후
Section A
(브라우저 주소창에) 표시되는 URL이/Main_Page/Section_A
리다이렉트나 페이지 새로고침 등을 하지 않고 (또는 그 이외의 것을) 사용할 수 있습니까?
History API를 구현하면 문제를 해결할 수 있습니다.특히 메서드를 사용하면 문제를 해결할 수 있습니다.MDN에서 읽을 것을 권장합니다.또한 History.js라는 올인원솔루션이 있어x 브라우저를 쉽게 구현할 수 있습니다(URL 해시에 폴백됩니다).#
브라우저가 지원하지 않는 경우)
다음은 예를 제시하겠습니다.
history.pushState('', 'New Page Title', newHREF);
충분히 흥분되지 않았나요?이 데모에서는, 실장을 재촉할 수 있습니다.
방금 튜토리얼을 찾았는데 효과가 있었어요
$('a').click(function(){
var value = $(this).attr('id');
window.location.hash = value; // it appends id to url without refresh
});
$(window).bind('hashchange' function() {
var newhash = window.location.hash.substring(1) // it gets id of clicked element
// use load function of jquery to do the necessary...
});
위 코드는 http://css-tricks.com/video-screencasts/85-best-practices-dynamic-content/에서 받았습니다.
언급URL : https://stackoverflow.com/questions/11932869/how-to-dynamically-change-url-without-reloading
'programing' 카테고리의 다른 글
루트 파라미터가 변경되어도 컴포넌트가 재마운트되지 않는다. (0) | 2023.03.23 |
---|---|
비단뱀의 protobuf to json (0) | 2023.03.23 |
Reactjs 브라우저 탭 닫기 이벤트 (0) | 2023.03.23 |
oracle diff: 두 테이블을 비교하는 방법 (0) | 2023.03.23 |
Word press 새 사용자 후크 (0) | 2023.03.23 |