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.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을 수행합니다.
JSF를 사용하여 세션이 만료 된 후 새로 고침에 문제가 있습니다. 페이지를 다시로드 한 후 PrimeFaces ViewExpiredException 및 약간의 조사를 통해 FireFox에서 한 가지 차이점을 발견했습니다.
전화 window.location.reload()
는 FF에서 새로 고침 아이콘을 클릭하는 것과 같은 방식으로 작동합니다.
Cache-Control max-age=0
window.location.href
URL 행에서 ENTER를 누르는 것과 같이 설정하는 동안 해당 행을 보내지 않습니다.
둘 다 GET으로 보내지지만 첫 번째 (재로드)는 이전 데이터를 복원하고 있으며 응용 프로그램의 상태가 일치하지 않습니다.
아니요, 없어야합니다. 그러나 일부 브라우저에는 차이가있을 수 있으므로 어떤 경우에는 작동하지 않을 수도 있습니다.
약 3 년 동안의 경험에서 나는 어떤 차이도 찾을 수 없었습니다 ...
편집 : 예, 여기 중 하나가 말했듯이 부울 매개 변수를 window.location.reload ()에 전달하는 것만 다릅니다. true 를 전달 하면 브라우저가 새로운 페이지를로드하지만 false 이면 캐시 버전이로드됩니다 ...
window.location.href, 이것은 안드로이드 5.1에서 webview에 생명을 구했습니다. Android에서이 버전의 location.reload ()로 페이지가 다시로드되지 않습니다.
'Programming' 카테고리의 다른 글
레일 : dependent => : destroy VS : dependent => : delete_all (0) | 2020.05.15 |
---|---|
특정 시점에 할당 된 문제를 찾는 방법은 무엇입니까? (0) | 2020.05.15 |
거부 된 마스터-> 마스터 (빨리 감기) (0) | 2020.05.15 |
명령 출력을 Makefile 변수에 지정하는 방법 (0) | 2020.05.14 |
스토리 보드의 테이블 헤더 뷰 (0) | 2020.05.14 |