[javascript] window.location.href = window.location.href와 window.location.reload ()의 차이점

JavaScript의 차이점은 무엇입니까

window.location.href = window.location.href

window.location.reload()

기능?



답변

올바르게 기억 하면 POST 데이터를 포함하지 않고 window.location.reload()POST 데이터로 현재 페이지를 다시로드하십시오 window.location.href=window.location.href.

아래 주석에서 @ W3Max가 언급 한 것처럼 window.location.href=window.location.hrefURL에 앵커 (#)가 있으면 페이지를 다시로드하지 않습니다 window.location.reload().이 경우에 사용해야합니다 .

또한 아래 @Mic에서 언급했듯이 브라우저 를 사용 하면 캐시를 건너 뛰고 서버에서 페이지를 다시로드 할 수 있도록 window.location.reload()추가 인수를 취 합니다. 반대를 수행하고 가능한 경우 캐시에서 페이지를로드합니다.skipCachewindow.location.reload(true)window.location.reload(false)


답변

window.location.reload(true)브라우저가 캐시를 건너 뛰고 서버에서 페이지를 다시로드 한다고 말합니다 . window.location.reload(false)반대를 할 것입니다.

참고 : defaultwindow.location.reload()false


답변

차이점은

window.location = document.URL;

URL에 해시 (#)가 있으면 (페이지 뒤에 무언가가 있거나없는 경우) 페이지를 다시로드하지 않지만

window.location.reload();

페이지를 새로 고침합니다.


답변

부울 true를 다시로드에 추가하면
window.location.reload(true)서버에서로드됩니다.

이 부울이 어떻게 지원되는지는 확실하지 않습니다. W3Org 는 NS가 그것을 지원 하는 데 사용 했다고 언급 했습니다.

window.location.href와 document.URL 의 내용에 차이가있을 수 있습니다 -최소한 location.href와 비표준 및 더 이상 사용되지 않는 document.location 사이에 차이가 있었지만 리디렉션과 관련이 있었지만 정말 마지막 천년입니다.

문서화 목적으로 window.location.reload ()를 사용 하고 싶습니다.


답변

언급했듯이 URL에 해시 (#)가있을 때 href를 수정하면 페이지가 다시로드되지 않습니다. 따라서 정규 표현식 대신 이것을 사용하여 다시로드합니다.

if (!window.location.hash) {
    window.location.href = window.location.href;
} else {
    window.location.reload();
}


답변

이 질문을 통해 IE의 비정상적인 동작, 특히 IE9가 이전 버전을 확인하지 않은 것으로 나타났습니다. 그것은 보인다

window.location.reload();

새로 고침으로 인해 전체 화면이 1 초 동안 비워집니다.

 window.location = document.URL;

거의 눈에 띄지 않게 페이지를 훨씬 빠르게 새로 고칩니다.

좀 더 많은 연구와 피들러 실험을 window.location.reload()하면 부울을 전달했는지 여부에 관계없이 캐시를 무시하고 서버에서 다시로드 하는 것으로 보입니다. 여기에는 모든 자산 (이미지, 스크립트, 스타일 시트, 등) 다시. 따라서 페이지에서 HTML을 새로 고치려면 window.location = document.URL트래픽이 적고 훨씬 더 빠르게 반환됩니다.

브라우저 간 동작의 차이점은 IE9가 reload 메소드를 사용할 때 보이는 페이지를 지우고 처음부터 다시 작성하는 것처럼 보입니다 .FF와 크롬은 새 자산을 얻을 때까지 기다렸다가 다른 경우 다시 작성합니다.


답변

Firefox (12.0)의 차이점은 POST에서 렌더링 된 페이지에서 reload ()가 경고를 표시하고 다시 게시하는 반면 URL 할당은 GET을 수행한다는 것입니다.

Chrome은 두 가지 모두에 대해 GET을 수행합니다.