检测GWT应用程序是否过期以及自动刷新浏览器的优雅方法?

时间:2012-04-23 21:48:46

标签: gwt gwt-rpc

在许多支持案例之后,我们意识到我们基于GWT的应用程序遇到的最大问题是用户将其一次打开数周。这意味着当我们每两周执行一次修补程序时,RPC存根不同步并导致静默异常被抛出,使网站看起来“坏了”。有没有人知道自动检测和避免这个问题的方法?我的一些想法是......

  1. 在捕获RPC不匹配异常时刷新浏览器。
  2. 当加载主页时,在源代码管理中注入版本号,构建来自,有一个状态检查器/计时器,检查该数字是否没有改变。当它重新加载时。
  3. 重新加载任意计时器(可能每天两次)。
  4. 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我想提出第四个选择。

创建一个RPC代理和UI对象代理,以便路由所有UI请求和RPC请求。这样,只要此代理检测到某些内容已过期,它就可以动态加载窗口小部件或更改其预期的RPC模型。

Vaadin的表现非常出色,而且效果很好。 Vaadin是一个基于GWT构建的UI工具包,以防你不知道。在过去的几年里,我们有几个长期运行的生产应用程序,我们在他们的UI Def语言(UIDL)中进行了一些调整,以添加版本不匹配。

这个图表很好地反映了他们的行为,如果你不想自己建造这样的东西,我当然会建议搬到Vaadin。

Vaadin Client Side Architecture

答案 1 :(得分:0)

实现在一小时的空闲时间后将用户注销的安全性。假设您的发布是在一夜之间或周末,用户将在发布后登录。无需刷新应用程序。 这是可行的,特别是如果您的网站最终需要用户登录。