첫 페이지 로드 후 한 번 페이지 새로 고침
나는 다음과 같은 자바스크립트 코드를 구현하고 싶습니다: 페이지가 완전히 로드되면 즉시 페이지를 새로 고치십시오. 단 한 번만.나는 "단 한 번"에 갇혀 있습니다.
window.onload = function () {window.location.reload()}
이것은 "한 번만" 없이 루프를 제공합니다.도움이 될 경우 jQuery가 로드됩니다.
해시를 사용합니다. 다음과 같습니다.
window.onload = function() {
if(!window.location.hash) {
window.location = window.location + '#loaded';
window.location.reload();
}
}
이 문제가 발생하면 여기로 검색하지만 대부분의 답변은 기존 URL을 수정하려고 합니다.다음은 localStorage를 사용할 때 사용할 수 있는 다른 답변입니다.
<script type='text/javascript'>
(function()
{
if( window.localStorage )
{
if( !localStorage.getItem('firstLoad') )
{
localStorage['firstLoad'] = true;
window.location.reload();
}
else
localStorage.removeItem('firstLoad');
}
})();
</script>
<script type="text/javascript">
$(document).ready(function(){
//Check if the current URL contains '#'
if(document.URL.indexOf("#")==-1){
// Set the URL to whatever it was plus "#".
url = document.URL+"#";
location = "#";
//Reload the page
location.reload(true);
}
});
</script>
if 조건으로 인해 페이지는 한 번만 다시 로드됩니다.저도 이 문제에 부딪혔고 검색해보니 좋은 해결책이 있었습니다.이것은 저에게 잘 맞습니다.
이 링크 선택 페이지를 한 번만 새로 고치는 데 사용할 수 있는 자바 스크립트 코드가 포함되어 있습니다.
페이지를 새로 고치는 방법은 두 가지 이상입니다.
솔루션 1:
페이지가 열릴 때마다 페이지를 새로 고치려면 다음을 사용합니다.
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>
솔루션 2:
<script language=" JavaScript" >
<!--
function LoadOnce()
{
window.location.reload();
}
//-->
</script>
그러면 당신의 말을 바꾸세요.
<Body onLoad=" LoadOnce()" >
솔루션 3:
response.setIntHeader("Refresh", 1);
그러나 이 솔루션은 지정한 시간에 따라 페이지를 두 번 이상 새로 고칩니다.
그것이 당신에게 도움이 되길 바랍니다.
<script>
function reloadIt() {
if (window.location.href.substr(-2) !== "?r") {
window.location = window.location.href + "?r";
}
}
setTimeout('reloadIt()', 1000)();
</script>
이것은 완벽하게 작동합니다.
2개월 연구 끝에 페이지를 한 번 다시 로드하는 솔루션을 얻었습니다.
제 고객 측 JS 프로젝트에서 잘 작동합니다.
저는 아래의 페이지를 한 번만 다시 로드하는 기능을 작성했습니다.
브라우저 다운로드 시간을 처음 가져오는 중
현재 타임스탬프 가져오기
브라우저 다운로드 시간 + 10초
브라우저 domloading 시간 + 현재 타임스탬프보다 10초 큰 경우 "reloadPage()"를 통해 페이지를 새로 고칠 수 있습니다.
그러나 10초 미만이면 페이지가 다시 로드되므로 반복적으로 다시 로드되지 않습니다.
따라서 js 파일 페이지의 어딘가에서 "reloadPage();" 함수를 호출하면 한 번만 다시 로드됩니다.
누군가에게 도움이 되기를 바랍니다.
// Reload Page Function //
function reloadPage() {
var currentDocumentTimestamp = new Date(performance.timing.domLoading).getTime();
// Current Time //
var now = Date.now();
// Total Process Lenght as Minutes //
var tenSec = 10 * 1000;
// End Time of Process //
var plusTenSec = currentDocumentTimestamp + tenSec;
if (now > plusTenSec) {
location.reload();
}
}
// You can call it in somewhere //
reloadPage();
나는 이것을 한 번 다시 로드하고 싶은 페이지의 머리 태그 안에 넣었습니다.
<?php if(!isset($_GET['mc'])) {
echo '<meta http-equiv="refresh" content= "0;URL=?mc=mobile" />';
} ?>
값 "mc"는 원하는 대로 설정할 수 있지만 두 줄 모두 일치해야 합니다."=mobile"은 "원하는 대로 ="가 될 수 있습니다. 새로 고침을 중지하기 위한 값만 있으면 됩니다.
window.localStorage 사용...다음과 같이:
var refresh = window.localStorage.getItem('refresh');
console.log(refresh);
if (refresh===null){
window.location.reload();
window.localStorage.setItem('refresh', "1");
}
저한테는 효과가 있어요.
끝나고</body>
태그:
<script type="text/javascript">
if (location.href.indexOf('reload')==-1)
{
location.href=location.href+'?reload';
}
</script>
당신은 하나를 verable로 만들 수 있습니다.once = false
그런 다음 페이지를 다시 로드합니다.if else
하는 식으로once == false
페이지를 다시 로드하여 make를 true로 만듭니다.
여기서 답변을 받아서 수정했습니다.이것이 저에게 완벽한 해결책입니다.
var refresh = window.localStorage.getItem('refresh');
console.log(refresh);
setTimeout(function() {
if (refresh===null){
window.location.reload();
window.localStorage.setItem('refresh', "1");
}
}, 1500); // 1500 milliseconds = 1.5 seconds
setTimeout(function() {
localStorage.removeItem('refresh')
}, 1700); // 1700 milliseconds = 1.7 seconds
GET 또는 POST 정보를 사용해야 합니다.GET가 가장 간단합니다.JS는 URL을 확인합니다. 특정 매개 변수가 발견되지 않으면 페이지를 새로 고칠 뿐만 아니라 사용자를 "다른" URL(동일한 URL이지만 GET 매개 변수가 포함되어 있음)로 보냅니다.
예:
http://example.com --> 새로 고쳐집니다.
http://example.com?refresh=no -->새로 고침 안 함
만약 당신이 지저분한 URL을 원하지 않는다면, 저는 페이지를 새로 고치지 않는 데 필요한 POST 매개변수가 초기 페이지 요청에 포함되었는지 여부를 본질적으로 알려주는 숨겨진 값을 본문의 시작 부분에 포함시킬 것입니다.그 후 바로 JS를 포함하여 해당 값을 확인하고 필요한 경우 해당 게시물 정보로 페이지를 새로 고칠 수 있습니다.
이걸로 해보세요.
var element = document.getElementById('position');
element.scrollIntoView(true);`
아래 코드로 시도해 보십시오.
var windowWidth = $(window).width();
$(window).resize(function() {
if(windowWidth != $(window).width()){
location.reload();
return;
}
});
setTimeout을 사용하는 다른 솔루션이 있지만 완벽하지는 않지만 작동합니다.
현재 URL에 매개 변수가 필요하므로 현재 URL을 이미지화하면 다음과 같습니다.
www.google.com?time=1
다음 코드는 페이지를 한 번만 다시 로드합니다.
// Reload Page Function //
// get the time parameter //
let parameter = new URLSearchParams(window.location.search);
let time = parameter.get("time");
console.log(time)//1
let timeId;
if (time == 1) {
// reload the page after 0 ms //
timeId = setTimeout(() => {
window.location.reload();//
}, 0);
// change the time parameter to 0 //
let currentUrl = new URL(window.location.href);
let param = new URLSearchParams(currentUrl.search);
param.set("time", 0);
// replace the time parameter in url to 0; now it is 0 not 1 //
window.history.replaceState({}, "", `${currentUrl.pathname}?${param}`);
// cancel the setTimeout function after 0 ms //
let currentTime = Date.now();
if (Date.now() - currentTime > 0) {
clearTimeout(timeId);
}
}
승인된 답변은 코드를 가장 적게 사용하고 이해하기 쉽습니다.저는 이것에 대한 다른 해결책을 제공했을 뿐입니다.
이것이 다른 사람들에게 도움이 되기를 바랍니다.
리액트 훅이 날 위해 일했어요
'react'에서 {useEffect, useState} 가져오기;
const [load, setLoad] = useState(false);
window.onload = function pageLoad() {
if (load) {
window.location.reload(true);
setLoad(false);
}
};
자바스크립트 파일에 추가된 이것을 제외하고는 완벽하게 작동하는 것은 없습니다.
function LoadOnce() {
if (localStorage.getItem('executed') == 'false') {
window.location.reload()
localStorage.setItem('executed', true)
}
}
setTimeout(function () {
LoadOnce()
}, 100)
그리고 이전 페이지에서 다음과 같이 썼습니다.
localStorage.setItem('executed', false)
var foo = true;
if (foo){
window.location.reload(true);
foo = false;
}
이것을 사용합니다.
<body onload = "if (location.search.length < 1){window.location.reload()}">
아래와 같이 rel="external"을 사용합니다.
<li><a href="index.html" rel="external" data-theme="c">Home</a></li>
언급URL : https://stackoverflow.com/questions/6985507/one-time-page-refresh-after-first-page-load
'programing' 카테고리의 다른 글
MariaDB 10.2 mysql_install_db가 중단됨 (0) | 2023.09.05 |
---|---|
MySQL에서 올바른 연산자 또는 선호하지 않는 연산자 사용 (0) | 2023.09.05 |
기본 구성과 같은 작성자가 없습니다. 개체 값에서 직렬화할 수 없습니다(위임자 또는 속성 기반 작성자 없음). (0) | 2023.09.05 |
Android Studio 편집기에서 RecyclerView 콘텐츠의 미리 보기를 표시하는 방법이 있습니까? (0) | 2023.09.05 |
Excel 파일을 MySQL Workbench로 가져오는 방법은 무엇입니까? (0) | 2023.09.05 |