2009-11-30 80 views
1

我目前正在進行基於Web的RSS聚合系統的設計和實現方面的研究,其目的是推薦算法的使用和評估。GWT +對象持久性+維護數據在內存中

該系統將需要相對交互式的基於Web的UI(因此我有興趣使用GWT)和某種形式的數據持久性來存儲RSS提要詳細信息和複雜的用戶配置文件,這些將用於提供建議(我已經看過基利德爲此)。

我的問題來自更新用戶配置文件。用戶與網站的交互會更新配置文件,這意味着每秒可能會有多次回調,其中的數據將用於更新用戶配置文件。用戶配置文件將不得不以某種形式的數據庫存儲,但每次進行回調時都會訪問該配置文件,效率非常低。根據我的理解,我的GWT應用程序將部署在Web服務器上,並且將具有可運行的Java類。但是,這意味着創建的任何對象只會在該類使用的生命週期中存在。

是否有任何方法可以在內存中維護這些數據,這些方法可以在GWT戰爭中被Java類高效地訪問和修改,並通過顯式調用定期寫入數據庫。

回答

1

絕對。 GWT遵循與Java相同的垃圾收集規則(不是技術上的,但足以滿足我們的需求)。這意味着您可以創建交互記錄對象,並將它們保存在內存中與將它們添加到列表/您想要的任何其他數據結構中一樣簡單。

您可以像使用桌面應用程序一樣使用GWT。一個簡單的例子就是將數據保存在單例中並定期將其發送到服務器。單身人士的使用壽命將從代碼加載到窗口未載入時間,就像您在桌面應用程序中期望的一樣。

您也可以掛鉤頁面的卸載事件,以便在應用程序關閉時將絕對最新信息發送回服務器。