2011-02-12 101 views
1

如何在GWT应用程序中管理状态?我在JSF开发方面经验更丰富,每个bean都被限定为请求,会话,应用程序,对话,页面等等。GWT中的工作如何?任何有关GWT国家管理的阅读技巧?GWT中的状态管理?

回答

3

这取决于你是否正在展示你的网站作为一个基于浏览器的应用程序或一系列页面。在应用程序样式中,用户很少从应用程序的URL导航,因此GWT模块寿命长,服务器相对无状态。在页面顺序风格中,每次用户浏览到一个新的URL时,GWT模块都会重新启动,因此服务器必须保持状态以在每次页面加载时发送回客户端。

写入状态和管理的应用程序样式使用相同的图案作为任何桌面或服务器应用程序。您通常有一些代理与服务器(GWT-RPC或RequestFactory)进行数据交换的服务对象,并且代理可用于模块中需要状态的各种对象。对象将其状态存储在字段中并具有与其有用性相对应的生命周期(例如,Widgets vs. caches vs. ephemeralia)。

1

嘛,总的来说,我认为它是这样的:通常情况下,你的GWT应用程序是一个网站有很多javascript代码。在该代码中,所有客户端Java类的所有字段(成员变量)都是您的状态。此外,您可以在动态网站的DOM中嵌入ID或变量值(例如属性“xyz”作为标记的一部分)。他们也为你的国家做出贡献。因此,所有的“数据”加上DOM就是状态。

在粗糙的水平,您可以在“#”符号编码后的URL状态的。它们被称为“地点”或“历史”,取决于您选择的实施方式。 (GWT的历史记录,mvp4g,...)

如果您需要某些用户管理,则可以在成功认证后从服务器请求令牌,将其存储在本地客户端中(更改其状态),然后将其包含为每个服务器请求。