现在我遇到了一个问题:
现在我要实现方案:
用户必须具有web应用版本的cookie属性。
根据要求我看到它并作为回应迫使他更新页面(不知道如何)。
如果用户的请求无法发送,gwt会强制他更新页面(不知道如何)。
但我认为必须有一种最佳实践方法来解决这个问题。
答案 0 :(得分:6)
在AsynCallback
中抓住IncompatibleRemoteServiceException
和StatusCodeException
。第一个告诉你客户端代码与服务器端代码不兼容;第二个可以告诉你那里不再有RPC servlet(寻找404
状态代码)。
然后,您可以向用户显示一条消息,提示他重新加载页面(例如,这就是Google网上论坛所做的)。
也就是说,如果更改相对较小,有一些方法可以缓解此问题:您可以将旧序列化策略文件保留在服务器端,以便服务器可以处理来自不同客户端版本的请求。这些变化必须以某种方式向后兼容 然后,您可以在服务器端检测客户端版本(使用最新的序列化策略文件列表并检查客户端是使用其中一个还是较旧的;或使用请求标头或cookie)并包含一些内容响应(响应标题或cookie)告诉它有一个新版本 或者您可以定期轮询服务器(显然不使用RPC)以获取最新版本的应用程序。
答案 1 :(得分:0)
另一种方法:
com.google.gwt.core.client.GWT.getPermutationStrongName();
保存在LocalStorage
或Cookies
中,然后完成投放。GQuery - promises
)。然后,在您的LocalStorage
或Cookies
新gwt的排列ID中替换。你可以随时加载你的应用程序(这不是什么大问题)。现在,当服务器上的版本发生变化时,您就可以了。