웹 프론트엔드 JS 튜토리얼 JavaScript에서 페이지 새로 고침과 브라우저 종료를 구별하는 방법은 무엇입니까?

JavaScript에서 페이지 새로 고침과 브라우저 종료를 구별하는 방법은 무엇입니까?

Nov 03, 2024 pm 05:42 PM

How to Distinguish Between Page Refresh and Browser Closure in JavaScript?

페이지 새로 고침과 브라우저 종료 식별

ONUNLOAD 이벤트가 트리거되면 페이지 새로 고침과 브라우저 닫기를 구별하기가 어려워집니다. . 이 문서에서는 이 문제에 대한 솔루션을 제시합니다.

솔루션

이 솔루션은 HTML5의 로컬 저장소와 서버-클라이언트 AJAX 통신을 활용합니다.

  1. 창 언로드 핸들러:

    • 창에 onunload 핸들러를 등록합니다.
    • 이 핸들러에서 페이지 언로드를 나타내는 로컬 스토리지 플래그를 설정합니다( myUnloadEventFlag).
    • 서버에 AJAX 요청을 보내 지정된 지연(예: 5초) 후에 사용자 연결을 끊도록 요청합니다.
  2. 본문 로드 핸들러:

    • 페이지 본문에 온로드 핸들러를 등록합니다.
    • 이 핸들러에서 언로드 이벤트에 대한 로컬 스토리지 플래그를 확인합니다.
    • 현재 시간과 플래그 시간의 차이가 지정된 지연 시간보다 작을 경우 페이지가 다시 로드된 것이므로 서버 연결 끊기 요청을 취소해야 합니다.
    • 그렇지 않으면 브라우저 종료입니다.
  3. 서버 처리:

    • 연결 해제 요청 목록을 유지합니다.
    • 정기적으로 검사하는 타이머를 실행합니다. 목록.
    • 요청 시간 초과가 만료되면 사용자 연결을 해제합니다.
    • 취소 요청이 수신되면 해당 연결 해제 요청을 목록에서 제거합니다.

이 접근 방식은 언로드 이벤트의 타이밍을 고려하여 탭/창 닫기와 페이지 새로고침을 구별합니다. 관련 페이지에 이벤트 핸들러를 배치하여 팔로우한 링크 및 제출된 양식과 같은 다른 이벤트에 적용할 수 있습니다.

제한 사항:

이 솔루션에는 HTML5 로컬 저장소 지원이 필요하며 그렇지 않을 수도 있습니다. MSIE7과 같은 이전 브라우저에서 작동합니다.

위 내용은 JavaScript에서 페이지 새로 고침과 브라우저 종료를 구별하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

JavaScript로 문자열 문자를 교체하십시오 JavaScript로 문자열 문자를 교체하십시오 Mar 11, 2025 am 12:07 AM

JavaScript로 문자열 문자를 교체하십시오

jQuery 날짜가 유효한지 확인하십시오 jQuery 날짜가 유효한지 확인하십시오 Mar 01, 2025 am 08:51 AM

jQuery 날짜가 유효한지 확인하십시오

jQuery는 요소 패딩/마진을 얻습니다 jQuery는 요소 패딩/마진을 얻습니다 Mar 01, 2025 am 08:53 AM

jQuery는 요소 패딩/마진을 얻습니다

10 JQuery Accordions 탭 10 JQuery Accordions 탭 Mar 01, 2025 am 01:34 AM

10 JQuery Accordions 탭

10 JQuery 플러그인을 확인할 가치가 있습니다 10 JQuery 플러그인을 확인할 가치가 있습니다 Mar 01, 2025 am 01:29 AM

10 JQuery 플러그인을 확인할 가치가 있습니다

노드 및 HTTP 콘솔로 HTTP 디버깅 노드 및 HTTP 콘솔로 HTTP 디버깅 Mar 01, 2025 am 01:37 AM

노드 및 HTTP 콘솔로 HTTP 디버깅

jQuery div에 스크롤 바를 추가합니다 jQuery div에 스크롤 바를 추가합니다 Mar 01, 2025 am 01:30 AM

jQuery div에 스크롤 바를 추가합니다

사용자 정의 Google 검색 API 설정 자습서 사용자 정의 Google 검색 API 설정 자습서 Mar 04, 2025 am 01:06 AM

사용자 정의 Google 검색 API 설정 자습서

See all articles