Mac OS X 中的 Applet 生命周期

发布于 2024-08-07 19:57:53 字数 256 浏览 4 评论 0原文

我有两个小程序 A 和 B。它们嵌入在不同的页面中。销毁时,A 将对象序列化到本地文件系统。在 init 时,B 反序列化这些对象。此设置在 Windows 中运行良好。不幸的是,我发现它在 Mac OS X 中不起作用。这是因为 B 在 A 被销毁之前被初始化。有谁知道是否有一些小程序参数或设置或配置或解决方法可以让 Mac OS X Java 插件的行为与 Windows 类似?

浏览器:FF 3.0 操作系统:Mac OS X 10.4 Java插件版本:1.5.0_06

I have two applets A and B. They are embedded in separate pages. On destroy, A serializes objects to the local file system. On init, B deserializes these objects. This set-up works fine in Windows. Unfortunately, I have discovered that it doesn't work in Mac OS X. This is because B is initialized before A is destroyed. Does anyone know if there is some applet param or setting or configuration or work-around that will allow the Mac OS X Java plug-in to behave similar to the Windows one?

Browser: FF 3.0
OS: Mac OS X 10.4
Java plug-in version: 1.5.0_06

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暖阳 2024-08-14 19:57:53

您很幸运,这一直在 Windows 下运行,即使在 Windows 上,该行为也可能是特定于浏览器的。根据 API 文档,“当包含此小程序的网页已被另一个页面替换时”将调用小程序的 stop 方法,并且将在 stop 方法之后调用 destroy 方法。注意“当...已经”而不是“在...之前”。简而言之,如果将小程序 A 的 HTML 页面替换为小程序 B 的 HTML 页面,则小程序 API 无法确保在初始化或启动小程序 B 之前调用并完成小程序 A 的某些方法。

如果您启用小程序的脚本编写,则您必须在小程序 A 中实现一种保存方法,并在尝试加载页面 B 之前使用页面 A 中的 Javascript 调用此方法。

You are just lucky that this has been working under Windows, and even on Windows, the behaviour is probably browser specific. According to the API documentation, the applet's stop method will be invoked 'when the Web page that contains this applet has been replaced by another page' and the destroy method will be invoked after the stop method. Note the 'when ... has been' and not 'before ... will be'. Short summary, if you replace an HTML page with applet A with an HTML page with applet B, the applet API provide no way to make sure that some method of applet A is invoked and completed before applet B is intiialized or started.

If you enable scripting of your applet, you have however implement a kind of save method in applet A and invoke this method using Javascript from page A, before even trying to load page B.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文