DOM

settings_applicationsEventTarget  >   settings_applicationsWindow  >   settings_applicationswindow

DOM

Writing
  • bug_report

Eventunload

현재 창(window)에 열린 웹 문서를 벗어나고자 할 때 발생한다.

insert_drive_fileEventinterfaceopen_in_new
Event interface는 window에서 unload 이벤트 타입으로 구현된다.

Window의 unload는 Event interface의 이벤트 타입이고 이벤트 리스너에서 사용된다.

기본 개요

문서나 하위 리소스가 언로드(unload)일 때 발생한다.

설명

현재 창(window)에 열린 웹 문서를 벗어나는 경우는 다음과 같다.

  • 열린 창을 닫는 경우
  • 다른 웹 페이지로 전환되는 경우

unload 이벤트가 발생하는 시점

unload 이벤트는 다음의 이벤트 이후에 발생한다.

window, frame의 경우

  • 다른 페이지로 이동할 때
  • 창이 닫힐 때

리소스의 경우

웹 문서 내에서 사용중인 리소스가 제거되는 경우에 발생한다.

이슈

unload 이벤트가 발생하는 시점은 다음과 같은 특징이 있다.

  • 리소스에게 적용하는 경우에 이미지, IFrame 등 모든 리소스는 여전히 존재한다.
  • 창을 닫는 경우에 최종 사용자는 아무것도 볼 수 없다.
  • 창을 닫는 경우에 UI 상호 작용은 비효율적이다.
  • 오류가 발생해도 언로딩(unloading) 절차는 중단되지 않는다.

 

이 이벤트 타입은 다음과 같은 이유로 사용하지 않기를 권고하고 있다.

  • 웹브라우저 호환성 문제가 발생될 수 있다.
  • 모바일에서 불안정하게 동작할 수 있다.

대체

unload 이벤트를 감지하려는 경우 pagehide 이벤트가 가장 좋은 대안이다. 참고로 세션의 종료를 알리는 데 사용하는 가장 좋은 이벤트는 visibilitychange 이벤트이다.

구문

window.addEventListener("unload", function() { });

명세

typeunload
handleronunload

지원 웹브라우저