【发布时间】:2010-05-12 16:05:06
【问题描述】:
据我了解,每个小程序都是独立的实体。有没有可能 小程序间通信? .如果可以,如何实现?
谢谢 J
【问题讨论】:
据我了解,每个小程序都是独立的实体。有没有可能 小程序间通信? .如果可以,如何实现?
谢谢 J
【问题讨论】:
是的。如果它们在同一页面上并且来自同一域,则可以实现小程序间的通信。您必须首先使用属性“name=value”为页面中的小程序命名,例如:
<applet code="FirstApplet.class" name="firstApplet" width=nn height=nn></applet>
<applet code="SecondApplet.class" name="secondApplet" width=nn height=nn></applet>
在上面的地方,在 FirstApplet.java 中,使用以下内容访问 SecondApplet:
SecondApplet secondApplet =
(SecondApplet)getAppletContext().getApplet("secondApplet");
//invoke a method on secondApplet here
同样,您可以在 SecondApplet.java 中访问 FirstApplet
【讨论】:
是的。您可以使用 cookie,详情请参阅this previous answer。
【讨论】:
两个不受信任的小程序应该无法通信。唯一的例外是它们是从同一个网站启动的。这将允许他们使用 HTTP 请求与该站点进行通信,或者(如 @Matthew 所述)通过设置和读取本地 cookie 存储中的 cookie。
【讨论】:
同一 Applet 上下文中的两个小程序可以很容易地进行通信。不幸的是,没有记录确定两个小程序是否在同一上下文中。实现可能会做出令人惊讶的事情,尤其是在处理错误或资源耗尽的情况时。
通常您应该返回浏览器使用 LiveConnect 进行通信,正如 Matthew Flaschen 所回答的那样。
您可以更进一步与原始服务器通信。即使小程序是从不同的主机下载的,也可以在两个源之间建立通信路径。 HTTP,或者更好的 HTTPS,应该是与服务器通信的可靠方式。
【讨论】:
两个小程序之间有更多的通信方式。我没有考虑代码。只说方法, - 使用 Javascript - 静态变量 - 单例对象 - RMI
【讨论】: