GWT 面板字段在慢速互联网上的数据刷新延迟
Posted
技术标签:
【中文标题】GWT 面板字段在慢速互联网上的数据刷新延迟【英文标题】:GWT panel fields data refresh delay on slow internet 【发布时间】:2014-08-27 10:44:31 【问题描述】:我正在使用 GWT 2.5.1。
在我的 GWT Web 应用程序中,我有一个 ComplexPanel 对象,其中包含一组字段(小部件)。有一个建议的字段(在面板上)让我有机会找到对象和有关它的信息。字段(其中 10-15 个)包含有关该对象的信息。
问题是当用户(客户端)的互联网连接速度较慢时,表单上的字段会延迟更新。如果在延迟时刻用户单击“保存”按钮 (AsyncCallback),旧数据(未更新)将发布到服务器。
它是如何工作的: 1. 服务器从表单接收回调并开始处理数据。 2.服务器用新数据刷新所有字段并结束工作。 3. javascript 使用大约 10 个请求更新表单上的数据。 但是:互联网很慢,一部分数据被刷新,其他没有。 4. 用户点击SAVE,混合数据进入服务器。
我需要(从服务器端)知道客户端的所有字段何时刷新并且服务器可以继续下一个发布请求。
感谢您的任何建议。
【问题讨论】:
【参考方案1】:单击保存按钮时执行验证检查。根据您的要求,您可以做几件事。我列出了一种验证方法。
-
在进行异步调用之前设置一个标志为 false。例如,
isLoaded = false
一旦您拥有所有字段,只需将其更新为 true,即isLoaded = true
在保存按钮处理程序时检查isLoaded
标志。如果false,提示信息,否则保存。
更新:
您可以计算收到的响应数。你知道你会得到 10 个响应。因此,对于收到的每个响应,都会增加一个计数器。仅当您收到全部 10 个响应时才激活保存。
要以简洁的方式执行此操作,请使用gwt-async-future。
【讨论】:
感谢您的回复。真正的问题是我不知道(从服务器端)何时在客户端更新所有字段。工作原理: 1. 服务器从表单接收回调并开始处理数据。 2.服务器用新数据刷新所有字段并结束工作。 3. Javascript 使用大约 10 个请求更新表单上的数据。但是:互联网很慢,一部分数据被刷新,其他没有。 4. 用户点击保存,混合数据进入服务器。当所有字段在客户端刷新时,我需要(从服务器端)知道。以上是关于GWT 面板字段在慢速互联网上的数据刷新延迟的主要内容,如果未能解决你的问题,请参考以下文章