如何在服务器端Java代码中的Vaadin 10中获取浏览器窗口宽度

时间:2018-06-23 20:59:07

标签: vaadin vaadin10

在Vaadin 8中,我可以这样获得窗口的大小:

Page.getCurrent().getBrowserWindowWidth();

在Vaadin 10中,Page似乎不再具有getBrowserWindowWidth方法。

在Vaadin 10中确定浏览器窗口宽度的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

Vaadin 10当前没有适当的功能。我们有两张与此功能相关的待售票:一张与making generic information available有关,另一张与the window size有关。

完成某项取决于浏览器大小的最佳方法可能是使用JavaScript或CSS Media Query来实现该部分。如果您确实需要了解服务器的大小,则需要使用Page.exectueJavaScript在浏览器中手动提取数字,然后使用例如将它们传递回服务器。 @ClientCallable使用组件方法。

还应该指出的是,即使实现了此功能,它在Vaadin 7和8中也无法正常工作,因为这些版本会减慢页面引导程序的等待时间,例如尺寸信息将在运行UI.init之前可用,而Vaadin 10甚至会在浏览器没有时间将尺寸信息发送到服务器之前构造初始UI内容。