문제

브라우저의 한 페이지 내에서 애플릿이 실행된다고 가정 해 봅시다. 사용자가 브라우저를 닫으면 어떻게됩니까?

애플릿은 측면에서 일종의 긴밀한 조치를 수행 할 수 있도록 알림을 받았습니까 (서버에 연결되어 정적 변수를 청소하는 연결을 닫습니다 ...)?

또한 동일한 동작이 페이지 새로 고침 또는 페이지 탐색 (브라우저 닫기 대신)을 신청할 것이라고 가정합니다. 브라우저는 열려 있지만 애플릿은 사라졌습니다. 브라우저를 닫으면 JVM도 닫으 므로이 시점에서 확실하지 않습니다.

감사합니다, JB

도움이 되었습니까?

해결책

예, 파괴 () 메소드 전에 호출해야합니다 브라우저는 객체를 내립니다.

파괴하다() 4의 마지막입니다 "수명주기 방법"Java 애플릿 중 하나는 다른 것입니다 init (), 시작(), 그리고 멈추다() ). 그들은 실제로 당신에 따라 다른 시간에 호출됩니다 브라우저 그리고 가상 기기. 각각의 호출시기를 정확히 알고 싶다면 애플릿 내 각 메소드를 구현하고 System.out 피드백.

이상적으로는 파괴 ()가 있어야합니다 환경에 의해 호출됩니다, 한 번만 호출해야합니다. Destroy ()가 호출되지 않은 것처럼 보이면 Destroy를 호출하는 공개 finalize () 메소드를 선언 할 수 있습니다. 또한 Window Object가 언로드 할 때 JavaScript에서 Destrove ()를 호출하려고 할 수도 있지만, 다시 Destroy ()를 불필요하게 호출하지 않도록하십시오.

public void finalize () {
    destroy();
}

다른 팁

대부분의 타임 파괴는 호출되지만 창을 닫을 경우 필요한 작업을 수행하기에 충분한 시간을 얻지 못합니다.

새로 고침, 백 워드로 탐색 할 때 충분한 시간이 나타납니다. <- 및 앞으로 ->

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top