拥有现有GWT如果我想向所有用户显示系统范围的消息,我应该遵循哪种模式:
System is undergoing maintenance, excuse the potential slowdown here and there.
对于加载应用程序的新用户,我可以考虑预先填充其初始页面的方法,但对于已经加载了SPA页面的用户,我想不出任何优雅的方式来推送该消息。
当一段时间后“维护”结束时,还有一种同样优雅的收回信息的方式。
我应该使用计时器并向服务器询问要显示的消息列表,并让它在后台运行......?
谢谢!
答案 0 :(得分:0)
这是恕我直言,这种事情(轮询)的旧方法,但优雅和现代的方式是通过html5(使用像atmosphere)或任何websockets simple gwt library之类的东西使用服务器端事件)等。如果您遵循此模式,请同时查看此other related question。
答案 1 :(得分:0)
如果您没有其他即时服务器到客户端消息要接收,则最简单的轮询机制最容易实现和理解。支持即时服务器到客户端消息的更复杂的解决方案是websockets /服务器端事件/长轮询。
另请注意: 如果您正在使用GWT RPC服务,则交换正在运行的客户端的后端将导致IncompatibleRemoteServiceException,如果...
[...] RemoteService方法调用中使用的其中一种类型已添加或删除了字段。 [...]
此异常消息显示“此应用程序已过期,请单击浏览器上的刷新按钮”。您可能希望在onFailure方法中检查此异常并(请求用户)重新加载。有关此异常发生的其他情况的详细信息,请参阅该链接。