[javascript] 첫 페이지로드 후 한 번 페이지 새로 고침

페이지가 완전히로드되면 페이지를 즉시 새로 고치지 만 한 번만 표시하는 JavaScript 코드를 구현하고 싶습니다. 나는 “한 번만”에 갇혀있다 :

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 조건으로 인해 페이지가 한 번만 다시로드됩니다.이 문제에 직면했고 검색 할 때이 좋은 해결책을 찾았습니다. 이것은 나를 위해 잘 작동합니다.


답변

이 링크를 확인하면 페이지를 한 번만 새로 고치는 데 사용할 수있는 자바 스크립트 코드가 포함되어 있습니다.

http://www.hotscripts.com/forums/javascript/4460-how-do-i-have-page-automatically-refesh-only-once.html

페이지를 새로 고치는 방법은 여러 가지가 있습니다.

solution1 :

페이지가 열릴 때마다 페이지를 새로 고치려면 다음을 사용하십시오.

<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()" >

solution3 :

response.setIntHeader("Refresh", 1);

그러나이 솔루션은 지정한 시간에 따라 페이지를 두 번 이상 새로 고칩니다.

도움이 되길 바랍니다


답변

나는 이것을 한 번의 재로드를 원하는 페이지의 내 머리 태그 안에 넣습니다.

<?php if(!isset($_GET['mc'])) {
echo '<meta http-equiv="refresh" content= "0;URL=?mc=mobile" />';
} ?>

값 “mc”는 원하는대로 설정할 수 있지만 둘 다 2 줄에서 일치해야합니다. “= mobile”은 “= anythingyouwant”일 수 있으며 새로 고침을 중지하는 값만 있으면됩니다.


답변

마침내 두 달 간의 조사 끝에 한 번 페이지를 다시로드하는 솔루션을 얻었습니다.

내 클라이언트 측 JS 프로젝트에서 잘 작동합니다.

한 번만 페이지를 다시로드하는 기능을 작성했습니다.

1) 먼저 브라우저 domloading 시간 확보

2) 현재 타임 스탬프 얻기

3) 브라우저 domloading 시간 + 10 초

4) 브라우저 domloading 시간 + 현재 타임 스탬프보다 10 초 더 큰 경우 “reloadPage ();”를 통해 페이지를 새로 고칠 수 있습니다.

하지만 10 초 이하이면 페이지가 새로 고침되어 반복적으로 다시로드되지 않음을 의미합니다.

5) 따라서 “reloadPage ();”를 호출하면 js 파일 페이지의 어딘가에있는 함수는 한 번만 다시로드됩니다.

누군가를 돕는 희망

// 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();


답변

<script>

function reloadIt() {
    if (window.location.href.substr(-2) !== "?r") {
        window.location = window.location.href + "?r";
    }
}

setTimeout('reloadIt()', 1000)();

</script>

이것은 완벽하게 작동합니다