5

假设我在浏览器的页面中运行了一个小程序。当浏览器被用户关闭时会发生什么?

小程序是否得到通知,以便它可以在其一侧执行某种关闭操作(关闭打开到服务器的连接,清理静态变量,...)?

此外,我假设相同的行为将适用于页面刷新或页面导航(而不是浏览器关闭)。浏览器保持打开状态,但小程序消失了。虽然当您关闭浏览器时,您也会关闭 JVM,所以我现在不确定。

谢谢,JB

4

2 回答 2

2

是的,应该在浏览器卸载对象之前调用destroy() 方法

destroy()是Java 小程序的四个“生命周期方法”中的最后一个(其他是init()start()stop())。它们实际上在不同的时间被调用,具体取决于您的浏览器虚拟机。如果您想确切知道何时调用每个方法,请在您的小程序中实现每个方法,并 System.out 一些反馈。

理想情况下,destroy() 应该由 environment 调用,并且应该只调用一次。如果似乎没有调用destroy(),则可以声明一个公共的finalize() 方法,该方法调用destroy。您也可以尝试在窗口对象卸载时从 javascript 调用destroy(),但同样,请确保您没有不必要地调用destroy()。

public void finalize () {
    destroy();
}
于 2008-10-30T09:17:54.753 回答
1

大多数时候会调用destroy,但是在关闭窗口的情况下它没有足够的时间来完成所需的任务。

刷新时有足够的时间,使用 Backword <- 和 Forward -> 导航

于 2008-11-18T14:04:07.123 回答