> 웹 프론트엔드 > JS 튜토리얼 > JavaScript로 브라우저 창 비활성을 어떻게 감지할 수 있습니까?

JavaScript로 브라우저 창 비활성을 어떻게 감지할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-20 04:31:12
원래의
970명이 탐색했습니다.

How Can I Detect Browser Window Inactivity with JavaScript?

JavaScript를 사용하여 브라우저 창 비활성 감지

많은 웹사이트에서는 리소스 집약적일 수 있는 주기적인 활동을 수행합니다. 성능과 사용자 경험을 최적화하려면 사용자가 페이지를 적극적으로 보고 있지 않을 때 이러한 활동을 일시 중지하는 것이 좋습니다.

창 비활성 감지 문제

사용자가 브라우저 창이나 탭을 적극적으로 보는 것은 웹 개발의 근본적인 과제입니다. window.onfocus 및 window.onblur 이벤트는 기본 기능을 제공하지만 사용자가 창을 떠나지 않고도 다른 탭이나 애플리케이션으로 포커스를 이동할 수 있으므로 신뢰할 수 없을 수 있습니다.

해결책: Page Visibility API

이 문제에 대한 현대적이고 안정적인 솔루션은 Page Visibility API입니다. 대부분의 주요 브라우저에서 지원되는 이 API는 페이지나 탭이 사용자 보기에서 숨겨지는 경우를 감지하는 방법을 제공합니다.

document.addEventListener("visibilitychange", function() {
  if (document.visibilityState === "hidden") {
    // Pause periodic activities
  } else {
    // Resume periodic activities
  }
});
로그인 후 복사

안타깝게도 이 API는 IE 10 이하에서는 지원되지 않습니다. 이러한 구형 브라우저의 경우 onblur/onfocus 및 onpageshow/onpagehide 이벤트와 관련된 덜 안정적인 대체 방법을 사용할 수 있습니다.

var hidden = "hidden";

// Compatibility checks
if (hidden in document) {
  // Supported: Page Visibility API
} else if ((hidden = "mozHidden") in document) {
  // Mozilla-specific
} else if ((hidden = "webkitHidden") in document) {
  // WebKit-based
} else if ((hidden = "msHidden") in document) {
  // Microsoft-specific
} else {
  // Legacy events
}

function onchange(evt) {
  if (evt.type in evtMap) {
    document.body.className = evtMap[evt.type];
  } else {
    document.body.className = this[hidden] ? "hidden" : "visible";
  }
}
로그인 후 복사

Page Visibility API 및 해당 대체 기능을 활용하면 창 비활성을 효과적으로 감지하고 이에 따라 코드 성능이 향상됩니다.

위 내용은 JavaScript로 브라우저 창 비활성을 어떻게 감지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿