2011-10-28 4 views
1

jQuery에서 페이지로드와 페이지 새로 고침을 구별해야합니다. 다음 코드를 구현하는 방법을 모르겠습니다.jQuery는 페이지로드와 새로 고침을 구분합니다.

if(/* this page is loaded reffered */) 
    ++count ; 
else if(/* this paged is refreshed */) 
    alert("refreshed"); 
+0

새로 고침 사이에 어떤 종류의 상태를 유지해야하기 때문입니까? 그렇다면 어떤 종류의 서버 측 '세션'제어를 사용할 수 있습니다. 그렇지 않으면 쿠키 클라이언트 측을 사용할 수 있습니다. –

+0

그것은 본질적으로 동일한 것입니다. 그러나 Asp.net에서 refresh/reload가 어떤 컨트롤 (예 : 버튼)에 의해 시작되면'IsPostback' 속성으로 여러분의 행운을 시험해 볼 수 있습니다. 그렇지 않으면이 세션에서 처음으로 페이지가로드되었는지 알기 위해 세션의 일부 카운터/플래그를 유지해야합니다. – TheVillageIdiot

답변

3

간단한 카운터를 사용하면 작동하지 않습니다. 세미 의사 코드로 설명하려고합니다.

$(document).ready(function(){ 
    if(isPageLoadCookiePresent){ 
    //this is a page load 
    setPageLoadCookie(); 
    }else{ 
    //this is a page refresh 
    } 
}); 

또는 쿠키를 설정하는 대신 HTML5 웹 저장소 API를 사용할 수 있습니다.

saveButton.addEventListener('click', function() { 
    window.localStorage.setItem('value', area.value); 
    window.localStorage.setItem('timestamp', (new Date()).getTime()); 
}, false); 
textarea.value = window.localStorage.getItem('value'); 

당신은이를 구현하기 위해 해시를 사용할 수 here

1

에서 촬영 :

var loc = window.location, 
    isLoad = false; 
if (String(loc.hash).indexOf('loaded') === -1) { 
    loc.hash += 'loaded'; 
    isLoad = true; 
} 

그럼 그냥 새로 고침의 여부 있는지 isLoad를 확인합니다.

관련 문제