包含许多行的表不起作用

时间:2014-09-02 10:46:30

标签: ajax browser vaadin vaadin7

我在Vaadin中遇到了Table的问题。 我创建了包含4列的Table组件,通常包含1000多行。每行包含一个custom_component(彼此相邻的两个标签)和其他列中的三个原始文本标签。

当我在localhost上运行Vaadin应用程序并从localhost-computer访问此应用程序时,它运行良好。但是,如果我的同事试图通过真实网络从他的计算机访问应用程序,则在打开表格或移动表格滚动条后,UI会卡住。通过说'卡住'我的意思是它在1到5分钟内没有响应,并且仍然显示内置的Vaadin进度图标(应该关闭)。 一个简单的解决方案是单击浏览器中的刷新按钮。刷新UI从头开始构建并且应用程序正常工作(至少在用户再次输入表格或移动滚动条之前)。

我检查了Vaadin控制台,我发现了一些奇怪的行为。这是通过从localhost计算机访问应用程序和移动表格中的滚动条而产生的日志:

"Tue Sep 02 12:13:09 GMT+200 2014 com.vaadin.client.VConsole"
INFO: Making UIDL Request with params:
"Tue Sep 02 12:13:09 GMT+200 2014 com.vaadin.client.VConsole" 
INFO: Sending push message: 
"Tue Sep 02 12:13:09 GMT+200 2014 com.vaadin.client.VConsole"
INFO: Received push message: 
"Tue Sep 02 12:13:09 GMT+200 2014 com.vaadin.client.VConsole"
INFO: JSON parsing took 1ms app
"Tue Sep 02 12:13:09 GMT+200 2014 com.vaadin.client.VConsole"
INFO: Handling message from server"

此日志由Vaadin控制台通过远程计算机(通过网络)访问

生成
Tue Sep 02 12:11:00 GMT+200 2014 
com.vaadin.client.VConsole INFO: Making UIDL Request with params: 
Tue Sep 02 12:11:00 GMT+200 2014 
com.vaadin.client.VConsole INFO: Sending push message: 
[one minute passes ... UI unresponsive now]
Tue Sep 02 12:12:20 GMT+200 2014 
com.vaadin.client.VConsole INFO: Sending heartbeat request... 
Tue Sep 02 12:12:20 GMT+200 2014 
com.vaadin.client.VConsole INFO: Received push message:
Tue Sep 02 12:12:20 GMT+200 2014 
com.vaadin.client.VConsole INFO: JSON parsing took 1ms
Tue Sep 02 12:12:20 GMT+200 2014 
com.vaadin.client.VConsole INFO: Handling message from server 
[UI back to normal]

如果比较这两个日志,您将看到导致调用“已接收推送消息”的差异。在localhost上,它正常:服务器在发送推送消息后收到推送消息。在远程访问中,服务器仅在客户端(浏览器)偶尔发送“心跳请求”后才会收到它。

你有什么提示可以解决我的问题吗?仅供参考,其余的应用程序(不包含复杂的表)工作正常(与localhost相同)。这种情况发生在每个主要浏览器(FF,IE,Chrome)

1 个答案:

答案 0 :(得分:0)

我通过在Vaadin中禁用推送模式解决了这个问题。

相关问题