【发布时间】:2014-09-02 10:46:30
【问题描述】:
我在 Vaadin 中遇到了 Table 问题。 我创建了具有 4 列的 Table 组件,通常包含超过 1000 行。每行包含一个 custom_component(两个相邻的标签)和其他列中的三个原始文本标签。
当我在 localhost 上运行 Vaadin 应用程序并从 localhost-computer 访问该应用程序时,它运行良好。但是,如果我的同事尝试通过真实网络从他的计算机访问应用程序,则 UI 在打开表格或移动表格滚动条后会卡住。说“卡住”是指它在 1 到 5 分钟内没有响应,并且仍然显示内置的 Vaadin 进度图标(它应该关闭)。 一个简单的解决方案是单击浏览器中的刷新按钮。刷新后从头构建 UI 并且应用程序正常工作(至少在用户再次进入表格或移动滚动条之前)。
我检查了 Vaadin 控制台,发现一些奇怪的行为。这是从本地计算机访问应用程序并在表中移动滚动条产生的日志:
"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]
如果您比较这两个日志,您将看到导致调用“收到的推送消息”的差异。在本地主机上正常:发送推送消息后服务器收到推送消息。在远程访问中,服务器只有在客户端(浏览器)偶尔发送“心跳请求”后才会收到。
您对我有什么提示吗,问题可能出在哪里?仅供参考,应用程序的其余部分(不包含复杂表)工作得很好(与本地主机相同)。这发生在每个主要浏览器(FF、IE、Chrome)上
【问题讨论】:
-
两种情况下 UI 在真实网络上是否冻结:几行,100 万行?
标签: ajax browser vaadin vaadin7