2010-04-12 31 views
2

據我瞭解,每個小程序都是獨立的實體。 小程序間通信是否可能? 。如果是這樣,如何實現?Inter小程序通信

感謝 Ĵ

回答

6

是。如果它們位於相同的頁面上並且源自相同的域,則可以實現小應用程序間通信。你必須先使用屬性「名稱=值」之類的名字在頁面中的小程序:

<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

0

兩個不可信的小程序不應該是能夠溝通。唯一的例外是如果它們是從同一個網站啓動的。這將允許他們通過設置和讀取本地cookie存儲中的cookie,使用HTTP請求進行通信,或者(如@Matthew所述)。

1

是。您可以使用cookie,詳見this previous answer

+0

嗨, 「前一個答案」顯示了使用JSObject一個Applet訪問瀏覽器性能的一個實例。這不是關於applet間的通信。 – 2010-04-12 13:43:19

+1

@Suresh庫馬爾餅乾是一種小程序進行交流的方式。任務完成。 – 2010-04-12 14:05:56

0

同一個Applet上下文中的兩個小程序可以很容易地進行通信。不幸的是,確定兩個applet是否在同一個上下文中沒有記錄。實施可能會做出令人驚訝的事情,特別是在處理錯誤或資源枯竭情況時。

一般來說,你應該使用LiveConnect的馬修•富蘭琛的回答進行溝通,回到瀏覽器。

你可以去更遠並傳達到原服務器。即使從不同主機下載小程序,也可以在兩個源之間建立通信路徑。 HTTP或非常好的HTTPS應該是與服務器通信的可靠方式。

0

有更多的方式在兩個小應用程序之間的通信。我沒有考慮到代碼。剛剛提到的方式, - 使用JavaScript - 靜態變量 - Singleton對象 - RMI