본문 바로가기

현재 페이지가 location.reload()에 의해 새로고침되었는지 ...

반응형

현재 페이지가 location.reload()에 의해 새로고침되었는지 여부를 직접적으로 확인하는 방법은 없습니다. 하지만 이를 우회적으로 감지할 수 있는 몇 가지 방법이 있습니다. 예를 들어, sessionStorage나 localStorage를 사용해 새로고침 여부를 추적할 수 있습니다.

다음은 sessionStorage를 활용하여 페이지가 location.reload()로 새로고침되었는지 확인하는 방법입니다.

// 새로고침 여부 확인
if (performance.navigation.type === performance.navigation.TYPE_RELOAD) {
  console.log("이 페이지는 location.reload()에 의해 새로고침되었습니다.");
} else {
  console.log("이 페이지는 새로고침되지 않았습니다.");
}

performance.navigation.type 사용
위의 코드는 브라우저의 Performance API를 사용하여 페이지가 새로고침 되었는지를 확인합니다. 
performance.navigation.type 속성은 페이지가 어떤 방식으로 로드되었는지를 나타냅니다.
performance.navigation.TYPE_RELOAD (1) : 페이지가 새로고침 되었을 때.
performance.navigation.TYPE_NAVIGATE (0) : 사용자가 직접 URL을 입력하거나, 링크를 클릭하여 페이지가 로드된 경우.

하지만 이 방법은 일부 최신 브라우저에서는 performance.navigation API가 더 이상 사용되지 않을 수 있습니다. 
이 경우 PerformanceNavigationTiming 인터페이스를 사용하여 같은 정보를 확인할 수 있습니다.

if (performance.getEntriesByType("navigation")[0].type === "reload") {
  console.log("이 페이지는 location.reload()에 의해 새로고침되었습니다.");
} else {
  console.log("이 페이지는 새로고침되지 않았습니다.");
}

위의 코드를 사용하면, location.reload()를 통해 새로고침되었는지를 더 정확하게 감지할 수 있습니다.

반응형

댓글


Copyright ⓒ SmartWeb All rights reserved.