jQuery로 페이지를 새로 고치는 방법은 무엇입니까?
jQuery로 페이지를 새로 고치는 방법은 무엇입니까?
답변:
$('#something').click(function() {
location.reload();
});
이 reload()
함수는 true
캐시가 아닌 서버에서 강제로 다시로드 하도록 설정할 수있는 선택적 매개 변수를 사용 합니다. 이 매개 변수의 기본값은 false
이므로 기본적으로 페이지는 브라우저 캐시에서 다시로드 될 수 있습니다.
window.location.href=window.location.href;
그리고 location.href=location.href;
했다.
window.location.reload(true);
하드 새로 고침, 그렇지 않으면 기본적으로 거짓입니다
JavaScript로 페이지를 새로 고치는 여러 가지 방법 이 있습니다 .
location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
location.reload(false)
웹 서버에서 문서를 다시 가져와야하는 경우 (예 : 문서 내용이 동적으로 변경되는 위치) 인수를로 전달합니다
true
.
계속해서 창의적으로 목록을 만들 수 있습니다.
window.location = window.location
window.self.window.self.window.window.location = window.location
var methods = [
"location.reload()",
"history.go(0)",
"location.href = location.href",
"location.href = location.pathname",
"location.replace(location.pathname)",
"location.reload(false)"
];
var $body = $("body");
for (var i = 0; i < methods.length; ++i) {
(function(cMethod) {
$body.append($("<button>", {
text: cMethod
}).on("click", function() {
eval(cMethod); // don't blame me for using eval
}));
})(methods[i]);
}
button {
background: #2ecc71;
border: 0;
color: white;
font-weight: bold;
font-family: "Monaco", monospace;
padding: 10px;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.5s ease;
margin: 2px;
}
button:hover {
background: #27ae60;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
(reload()/(false))
이 느립니다. 흠. 흥미 롭군 :) 및 1과 6은 reload()
기본 매개 변수 인와 동일 false
합니다.
location.href = location.href
내가 일반적으로 사용하는 것이지만 다른 사람들에게 감사합니다. 매우 유용한! +1
많은 방법이 효과가 있다고 생각합니다.
window.location.reload();
history.go(0);
window.location.href=window.location.href;
window.location.href=window.location.href;
수행하지 않습니다 아무것도 당신의 URL은 끝에 # / hashbang가있는 경우 example.com/something#blah
:
location.reload()
와 의 차이점이 궁금한 경우 history.go(0)
: 없음. w3.org/TR/html5/browsers.html#dom-history-go 에있는 HTML 5 스펙의 관련 섹션은 다음과 같이 명시 적으로 명시되어 있습니다. " go(delta)
메소드에 대한 인수가 생략되었거나 값이 0 인 경우 사용자 에이전트는 location.reload()
메소드가 대신 호출 된 것처럼 작동해야합니다 . "
jQuery를 사용하여 페이지를 다시로드하려면 다음을 수행하십시오.
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
}
});
내가 사용한 접근 방식은 Ajax jQuery였습니다. Chrome 13 에서 테스트했습니다. 그런 다음 다시로드를 트리거하는 핸들러에 코드를 넣습니다. URL이 있습니다 ""
즉, 이 페이지를 .
context
매개 변수를 잘못 이해하고 $.ajax
어떤 식 으로든 어떤 마법을 수행하기를 기대하고 있다고 생각합니다 . 모든 그것입니다 않는 설정된 this
콜백 함수의 값을 . 의 URL에 대한 Ajax ""
는 현재 사용중인 URL을 공격하여 일반적으로 전체 HTML ( <html>
및 <head>
and 포함)을로드 하며이 <body>
답변에서 원하지 않는 것을 필터링하지 않습니다.
POST 요청에 의해 현재 페이지가로드 된 경우 사용할 수 있습니다
window.location = window.location.pathname;
대신에
window.location.reload();
window.location.reload()
POST 요청에 의해로드 된 페이지에서 호출되면 확인 메시지가 표시 되기 때문 입니다.
window.location = window.location
그러나 @mrmillsy 도 불완전합니다. 현재 URL에 fragid (hashbang)가 있으면 아무 것도 수행하지 않습니다.
문제는
JavaScript 로 페이지를 새로 고치는 방법
window.location.href = window.location.href; //This is a possibility
window.location.reload(); //Another possiblity
history.go(0); //And another
당신은 선택을 망쳐 놓았습니다.
캐시 관련 동작이 다른 세 가지 접근 방식 :
location.reload(true)
의 forcedReload
매개 변수 를 구현하는 브라우저 location.reload()
에서 페이지의 모든 사본 및 모든 해당 자원 (스크립트, 스타일 시트, 이미지 등)을 가져 와서 다시로드합니다. 제공하지 않습니다 어떤 캐시에서 자원을 - 어떤 보내지 않고 서버에서 신선한 복사본을 얻을 수 if-modified-since
또는 if-none-match
요청에 헤더를.
가능한 경우 브라우저에서 "하드 리로드"를 수행하는 사용자와 동일합니다.
참고 그 전달 true
에 location.reload()
파이어 폭스 (참조 지원됩니다 MDN을 ) 및 Internet Explorer (참조 MSDN을 )하지만 보편적으로 지원의 일부가 아닙니다하지 W3 HTML 5 스펙 ,도 W3 초안 HTML 5.1 사양 ,도 WHATWG HTML 생활 표준 .
Chrome과 같은 지원되지 않는 브라우저 location.reload(true)
에서는와 동일하게 작동합니다 location.reload()
.
location.reload()
또는 location.reload(false)
다시로드 페이지, 신선한를 가져 오는, 페이지 HTML 자체 및 수행 이외의 캐시 된 복사본 RFC 7234 , 브라우저 캐시 것을 (스크립트 같은) 어떤 리소스에 대한 재 검증 요청을 들은 경우에도 신선한은 RFC 7234 개 허용 봉사 할 수있는 브라우저입니다 재확인없이
location.reload()
전화를 할 때 브라우저가 캐시를 어떻게 활용해야하는지 정확히 알 수있는 한 구체적으로 명시하거나 문서화하지 않았습니다. 실험을 통해 위의 동작을 확인했습니다.
이는 사용자가 브라우저에서 "새로 고침"버튼을 누르는 것과 동일합니다.
location = location
(또는 location
속성에 하거나 속성에 )페이지의 URL에 fragid / hashbang이없는 경우에만 작동합니다!
refetching 또는 재 검증없이 다시로드 페이지를 어떤 새로운 캐시에서 자원을. 페이지의 HTML 자체가 최신이면 HTTP 요청을 전혀 수행하지 않고 페이지를 다시로드합니다.
이는 캐싱 관점에서 새 탭에서 페이지를 여는 사용자와 동일합니다.
그러나 페이지의 URL에 해시가 포함되어 있으면 아무 효과가 없습니다.
여기서도 캐싱 동작은 내가 아는 한 지정되지 않았습니다. 테스트를 통해 결정했습니다.
요약하면 다음을 사용하려고합니다.
location = location
캐시의 최대 사용, 오래로 페이지 경우이 작동하지 않습니다, 그 URL에 해시가없는location.reload(true)
재확인하지 않고 모든 리소스의 새 사본을 가져옵니다 (일반적으로 지원되지 않으며 location.reload()
Chrome과 같은 일부 브라우저에서는 다르게 작동하지 않음 )location.reload()
'새로 고침'버튼을 클릭하는 사용자의 효과를 충실히 재현합니다.location = location
URL에 해시가 있으면 작동하지 않습니다. fragids를 사용하는 모든 사이트 또는 누군가가 페이지에 링크하는 것이 fragid를 URL에 추가 할 수있는 사이트의 경우 사이트를 손상시킵니다.
window.location.reload()
서버에서 다시로드되고 모든 데이터, 스크립트, 이미지 등을 다시로드합니다.
따라서 HTML을 새로 고치려면 window.location = document.URL
트래픽을 줄이면서 훨씬 더 빠르게 반환됩니다. 그러나 URL에 해시 (#)가 있으면 페이지를 다시로드하지 않습니다.
location.reload()
인수 없이도 캐시 된 리소스를 다시 확인 window.location = document.URL
해야하지만 서버가 최신 상태 인 한 캐시 된 리소스를 제공 하는 것이 좋습니다.
jQuery Load
함수는 페이지 새로 고침을 수행 할 수도 있습니다.
$('body').load('views/file.html', function () {
$(this).fadeIn(5000);
});
질문이 일반적이므로 답변에 대한 가능한 해결책을 요약 해 보겠습니다.
간단한 일반 JavaScript 솔루션 :
가장 쉬운 방법은 적절한 방법으로 배치 된 한 줄 솔루션입니다.
location.reload();
많은 사람들이 "포인트"를 얻기를 원하기 때문에 여기에서 누락 된 것은 reload () 함수 자체가 부울을 매개 변수로 제공한다는 것입니다 (자세한 내용 : https://developer.mozilla.org/en-US/docs/Web / API / Location / reload ).
Location.reload () 메서드는 현재 URL에서 리소스를 다시로드합니다. 선택적 고유 매개 변수는 부울이며, 참이면 페이지가 항상 서버에서 다시로드됩니다. false이거나 지정하지 않으면 브라우저가 캐시에서 페이지를 다시로드 할 수 있습니다.
이것은 두 가지 방법이 있음을 의미합니다.
해결 방법 1 : 서버에서 현재 페이지를 강제로 다시로드
location.reload(true);
해결 방법 2 : 캐시 또는 서버에서 다시로드 (브라우저 및 구성 기반)
location.reload(false);
location.reload();
그리고 이벤트를 수신하는 jQuery와 결합하려면 ".click"또는 다른 이벤트 래퍼 대신 ".on ()"메서드를 사용하는 것이 좋습니다. 예를 들어보다 적절한 해결책은 다음과 같습니다.
$('#reloadIt').on('eventXyZ', function() {
location.reload(true);
});
다음은 jQuery를 사용하여 페이지를 비동기 적으로 다시로드하는 솔루션입니다. 로 인한 깜박임을 방지합니다 window.location = window.location
. 이 예는 대시 보드에서와 같이 지속적으로 다시로드되는 페이지를 보여줍니다. 전투 테스트를 거쳤으며 타임 스퀘어의 정보 디스플레이 TV에서 실행 중입니다.
<!DOCTYPE html>
<html lang="en">
<head>
...
<meta http-equiv="refresh" content="300">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<script>
function refresh() {
$.ajax({
url: "",
dataType: "text",
success: function(html) {
$('#fu').replaceWith($.parseHTML(html));
setTimeout(refresh,2000);
}
});
}
refresh();
</script>
</head>
<body>
<div id="fu">
...
</div>
</body>
</html>
노트:
$.ajax
직접 같은 $.get('',function(data){$(document.body).html(data)})
원인 CSS / JS 파일 것은 캐시 체포 얻을 당신이 사용하는 경우에도, cache: true
우리가 사용하는 이유, 그건parseHTML
parseHTML
body
태그를 찾을 수 없으므로 몸 전체가 여분의 div로 이동해야합니다.이 지식 덩어리가 언젠가 도움이되기를 바랍니다. 어떻게 ID를 선택했는지 추측 할 수 있습니다.div
http-equiv="refresh"
자바 스크립트 / 서버 딸꾹질에 문제가있는 경우에만 사용 하면 전화를받지 않고도 페이지가 계속 다시로드됩니다.http-equiv
합니다.당신이 사용할 수있는 JavaScript location.reload()
방식을 . 이 메소드는 부울 매개 변수를 승인합니다. true
또는 false
. 매개 변수가 true
; 페이지는 항상 서버에서 다시로드됩니다. 만약 그렇다면 false
; 이것은 기본값이거나 빈 매개 변수 브라우저로 페이지를 캐시에서 다시로드합니다.
와 true
매개 변수
<button type="button" onclick="location.reload(true);">Reload page</button>
와 default
/ false
매개 변수
<button type="button" onclick="location.reload();">Reload page</button>
jquery 사용
<button id="Reloadpage">Reload page</button>
<script type="text/javascript">
$('#Reloadpage').click(function() {
location.reload();
});
</script>
당신은 필요가 없습니다 사용하여 페이지를 다시로드, jQuery를에서 아무것도 순수 자바 스크립트를 그냥이 같은 위치 속성에 다시로드 기능을 사용합니다 :
window.location.reload();
기본적으로 브라우저 캐시를 사용하여 페이지를 다시로드합니다 (존재하는 경우) ...
페이지를 강제로 다시로드하려면 아래처럼 실제 값을 전달하여 메소드를 다시로드하십시오 ...
window.location.reload(true);
또한 이미 창 범위 에 있다면 창을 제거하고 다음을 수행 할 수 있습니다.
location.reload();
사용하다
location.reload();
또는
window.location.reload();
jQuery를 사용 중이고 새로 고치려면 Javascript 함수에 jQuery를 추가하십시오.
을 클릭 할 때 페이지에서 iframe을 숨기고 싶었지만 h3
작동했지만 항목을 클릭 할 수 없었습니다.iframe
브라우저를 수동으로 새로 고치지 않으면 처음 ... 이상적이지 않습니다.
나는 다음을 시도했다.
var hide = () => {
$("#frame").hide();//jQuery
location.reload(true);//javascript
};
일반 Jane 자바 스크립트와 jQuery를 혼합하면 작동합니다.
// code where hide (where location.reload was used)function was integrated, below
iFrameInsert = () => {
var file = `Fe1FVoW0Nt4`;
$("#frame").html(`<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/${file}\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen></iframe><h3>Close Player</h3>`);
$("h3").enter code hereclick(hide);
}
// View Player
$("#id-to-be-clicked").click(iFrameInsert);
여기에 모든 대답이 좋습니다. 질문은 페이지를 다시로드하는 것에 대해 지정하므로jquery미래 독자들을 위해 더 많은 것을 추가 할 생각이었습니다.
jQuery 는HTML의 클라이언트 측 스크립팅을 단순화하도록 설계된크로스 플랫폼 JavaScript 라이브러리 입니다.
~ 위키 백과 ~
그래서 당신은의 기초를 이해합니다 jquery또는 jquery 기반으로 자바 스크립트. 순전히자바 스크립트 단순한 것들에 관해서는 더 좋습니다.
그러나 필요한 경우 jquery 해결책은 다음과 같습니다.
$(location).attr('href', '');
현재 페이지를 다시로드하는 방법에는 여러 가지가 있지만 어떻게 든 이러한 방법을 사용하면 업데이트 된 페이지를 볼 수 있지만 캐시 값이 적지는 않지만 그 문제를 극복하거나 어려운 요청을하고 싶다면 아래 코드를 사용하십시오.
location.reload(true);
//Here, it will make a hard request or reload the current page and clear the cache as well.
location.reload(false); OR location.reload();
//It can be reload the page with cache
<i id="refresh" class="fa fa-refresh" aria-hidden="true"></i>
<script>
$(document).on('click','#refresh',function(){
location.reload(true);
});
</script>
아마도 가장 짧은 (12 자)-사용 내역
history.go()
두 가지 방법으로 쓸 수 있습니다. 첫 번째는 단순 새로 고침 이라고도하는 페이지를 다시로드하는 표준 방법입니다.
location.reload(); //simple refresh
또 다른 하나는 하드 새로 고침 이라고합니다 . 여기서 부울 표현식을 전달하고 true로 설정하십시오. 그러면 페이지가 새로 고침되어 이전 캐시가 손상되고 내용이 처음부터 표시됩니다.
location.reload(true);//hard refresh
다음은 jQuery를 사용 하여 페이지를 다시로드하는 데 사용할 수있는 몇 줄의 코드입니다. 입니다.
jQuery 래퍼를 사용하고 기본 dom 요소를 추출합니다.
코드 에서 jQuery 느낌 을 원하고 코드 속도 / 성능 에 신경 쓰지 않는 경우 이것을 사용하십시오 .
필요에 따라 1에서 10까지 선택하거나이 전에 패턴과 답변을 기반으로 추가하십시오.
<script>
$(location)[0].reload(); //1
$(location).get(0).reload(); //2
$(window)[0].location.reload(); //3
$(window).get(0).location.reload(); //4
$(window)[0].$(location)[0].reload(); //5
$(window).get(0).$(location)[0].reload(); //6
$(window)[0].$(location).get(0).reload(); //7
$(window).get(0).$(location).get(0).reload(); //8
$(location)[0].href = ''; //9
$(location).get(0).href = ''; //10
//... and many other more just follow the pattern.
</script>