I have to maintain an application not being a Vaadin specialist so sorry for my maybe clumsy description.
WHAT HAPPENS?
Our application is supposed to open a tab in a tab sheet programmatically. In certain circumstances that won’t happen or not happen for a long time. The application is like frozen. The tab opens though as soon as some event is happening (a button is clicked or the browser debugging is opened with F12 (which is probably causing a resize). I can only reproduce it on IE11 but that’s exactly the browser the customer uses. Maybe it happens in Chrome too. It’s just that even trying many many times it never happened on Chrome.
WHAT I FOUND OUT
I used the debug window of Vaadin (why is it not possible to save log messages there? but that’s another topic) and I could see that when everything works fine the whole “rendering” of the tab seems to be triggered by this sequences:
454msTotal layout phase time: 7ms
... not hanging here
476msRPC invocations to be sent to the server:
478ms 2778 (class com.vaadin.client.ui.table.TableConnector) :
478ms v.v(pagelength : 48)
479ms 2730 (class com.vaadin.client.ui.ui.UIConnector) :
480ms com.vaadin.shared.ui.ui.UIServerRpc.resize([1113, 2443, 2443, 1113]
)
481ms com.vaadin.shared.ui.ui.UIServerRpc.poll([])
483msSending xhr message to server: {"csrfToken":"ba4eb440-92e4-42e8-a1ea-c85858fde13b","rpc":[["2778","v","v",["pagelength",["i",48]
]],["2730","com.vaadin.shared.ui.ui.UIServerRpc","resize",[1113,2443,2443,1113]
],["2730","com.vaadin.shared.ui.ui.UIServerRpc","poll",[]
]],"syncId":0,"clientId":0,"wsver":"7.7.17"}
512msServer visit took 29.8ms
514msJSON parsing took 0.8ms
whereas when the UI “hangs” it looks like this
786msTotal layout phase time: 53ms
... it hangs here until I press a button (or open browser debugging via F12)
114322msRPC invocations to be sent to the server:
114324ms 2583 (class com.vaadin.client.ui.table.TableConnector) :
114324ms v.v(pagelength : 48)
114325ms 2535 (class com.vaadin.client.ui.ui.UIConnector) :
114325ms com.vaadin.shared.ui.ui.UIServerRpc.resize([1113, 2443, 2443, 1113]
)
114325ms 2589 (class com.vaadin.client.ui.button.ButtonConnector) :
114326ms com.vaadin.shared.ui.button.ButtonServerRpc.click([LEFT,1789,60,false,false,false,false,1,22,18]
)
114329msSending xhr message to server: {"csrfToken":"ba4eb440-92e4-42e8-a1ea-c85858fde13b","rpc":[["2583","v","v",["pagelength",["i",48]
]],["2535","com.vaadin.shared.ui.ui.UIServerRpc","resize",[1113,2443,2443,1113]
],["2589","com.vaadin.shared.ui.button.ButtonServerRpc","click",[{"altKey":false,"button":"LEFT","clientX":1789,"clientY":60,"ctrlKey":false,"metaKey":false,"relativeX":22,"relativeY":18,"shiftKey":false,"type":1}]
]],"syncId":0,"clientId":0,"wsver":"7.7.17"}
114351msServer visit took 22.4ms
114353msJSON parsing took 0.8ms
Apart from the above difference I don’t see any obvious differences before and after the event that triggers the rendering.
The call to UIServerRpc.poll seems to be missing in the freezing case.
What’s happening here? Can I somehow force this event to happen?
Thanks in advance