我們有一個單例,它保持applet的當前UI狀態。問題是:Applets中的單例
- 用戶在瀏覽器中打開小程序頁面,從下拉菜單中選擇一個值。
- 用戶在應用程序中瀏覽純HTML的另一個頁面。
- 用戶回到applet頁面,UI狀態是完好的,即他下拉選擇的值在那裏。這種下拉狀態來自Singleton,它可以保存applet的UI狀態。
- 用戶在應用程序中再次轉到純粹的HTML頁面。
- 用戶再次回到applet頁面,這次狀態丟失並重置爲默認佈局(下拉菜單包含默認值)。
我找到的原因是,保存UI狀態的Singleton在用戶第二次返回小程序時無法保持其狀態。所有的靜態變量都被重置爲默認值。
我發現小程序應該是無狀態的,因爲這link:
它說:存放在小程序
值可以調用之間繼續存在,如果由類加載器緩存中獲取的內存不需要用於其他目的。但是你不能依賴那種行爲。一般來說,小程序應該是無狀態的。如果需要持久存儲,請使用瀏覽器cookie。
在這種情況下,我們如何爲Applets創建單例?我無法在瀏覽器cookie中保存整個UI狀態。
有真正實現的嵌入式applet的一個單沒有有效的方法。 Otoh使用JWS啓動它自由浮動,並且可以使用SingleInstanceService來確保單個實例。 – 2013-02-16 01:31:04
@AndrewThompson JWS中applet的實例化是否可以被瀏覽器中的JRE插件訪問?如果不是小程序如何訪問JWS對象? – 2015-10-28 13:24:58
@cp。是的,如果它是嵌入的,否則如果它是自由浮動的。你爲什麼需要一個單身人士?你爲什麼需要一個小程序? – 2015-10-28 13:33:43