在客户端更新Web应用程序的最佳实践(GWT)

jNe*_*ess 3 javascript java gwt session-cookies web

现在我有一个问题:

  1. 用户打开web应用页面,获取javaScript(ModuleName.nocache.js); 然后我更新客户端(roc请求,查看等​​).
  2. 用户没有关闭浏览器中的Web应用程序选项卡,没有更新页面.他点击某处并随机爆炸.例如,RPC不起作用,servlet移动到任何地方,有很多错误.

现在我想实现场景:
用户必须具有web应用版本的cookie属性.
根据要求,我看到它并作为回应迫使他更新页面(不知道如何).
如果用户的请求无法发送gwt强迫他更新页面(不知道如何).

但我认为必须有一种最佳实践方法来解决这个问题.

Tho*_*yer 6

抓住你的IncompatibleRemoteServiceExceptions和s.第一个告诉你客户端代码与服务器端代码不兼容; 第二个可以告诉你那里不再有RPC servlet(寻找状态代码).然后,您可以向用户显示一条消息,提示他重新加载页面(例如Google Groups所做的事情).StatusCodeExceptionAsynCallback404

也就是说,如果更改相对较小,有一些方法可以缓解这种情况:您可以将旧的序列化策略文件保留在服务器端,以便服务器可以处理来自不同客户端版本的请求.这些变化必须以某种方式向后兼容.
然后,您可以在服务器端检测客户端版本(使用最新的序列化策略文件列表并检查客户端是使用其中一个还是较旧的;或使用请求标头或cookie)并包含一些内容响应(响应头或cookie)告诉它有一个新版本.
或者您可以定期轮询服务器(显然使用RPC)以获取最新版本的应用程序.