2013-01-09 62 views
2

我有一個相當複雜的未簽名Java小程序。它(除其他外)包含用戶可以瀏覽的樹。我打算將該applet捆綁到現有的網頁中,但當用戶轉到我的網站的另一個頁面時,applet應以某種方式保持其狀態。 所以,我需要你的幫助,因爲我不知道當用戶導航到我的網站的另一個頁面時是否有未簽名的applet「睡眠」的方式,以及當用戶回到「applet頁面」提供的用戶時是否「活着」繼續它的工作(他離開時選擇的樹節點在他回來時仍然被選中,等等)。 這是可能的未簽名的小程序。如果是 - 如何,如果不是爲什麼? :)保存Java小程序的狀態

+0

你可以使用cookies /文件 – Doorknob

+0

那麼,cookie可以用來保存少量控件的狀態,但是我的applet有很多很多的控件(它更像桌面應用程序,然後是簡單的web應用程序) – guest86

+0

然後你可以使它成爲桌面應用程序。或者你可以寫一個文件到某個地方。 – Doorknob

回答

2

由於Applet未簽名你只有2種方式:

  1. 保存的cookies狀態
  2. 節省服務器狀態

使用從applet的餅乾,您需要使用「實時連接「,即你實際上會調用放置applet的頁面的java腳本來操作cookie。每次更改時都可以保存狀態,並在applet init中讀取它。

http://jdk6.java.net/plugin2/liveconnect/

如果你願意,你可以在服務器端管理的狀態。例如,您可以在服務器上提供允許保存和檢索狀態的RESTful API。然後從你的applet中調用它。

+2

*「由於applet未簽名,因此您只有兩種方法:」*您錯過了JNLP API的PersistenceService。 (爲OP)這是一個[演示。的服務](http://pscode.org/jws/api.html#ps)。在服務器端存儲上打電話,我正在仔細研究這個,並忘記了這一點。 –

+0

我從來沒有使用REST,我不知道這是否會對性能造成不良影響。我的applet很大程度上使用db,它已經對它自己的性能產生了影響...... – guest86

+1

@Andrew Thompson,JNLP的PersistenceService +1。我不知道這件事。謝謝。 – AlexR