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.href
URL에 앵커 (#)가 있으면 페이지를 다시로드하지 않습니다 window.location.reload()
.이 경우에 사용해야합니다 .
또한 아래 @Mic에서 언급했듯이 브라우저 를 사용 하면 캐시를 건너 뛰고 서버에서 페이지를 다시로드 할 수 있도록 window.location.reload()
추가 인수를 취 합니다. 반대를 수행하고 가능한 경우 캐시에서 페이지를로드합니다.skipCache
window.location.reload(true)
window.location.reload(false)
답변
window.location.reload(true)
브라우저가 캐시를 건너 뛰고 서버에서 페이지를 다시로드 한다고 말합니다 . window.location.reload(false)
반대를 할 것입니다.
참고 : default
값 window.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을 수행합니다.