Vaadin 14 浏览器支持多标签

问题描述

Vaadin 14 是否支持打开多个浏览器选项卡?当我在浏览器中打开新选项卡时,两个选项卡都同步工作,因此当一个选项卡中的代码正在执行时,我在第二个选项卡中的操作正在等待从第一个选项卡到结束的代码。有没有办法让两个浏览器卡同时工作?我仍然希望允许用户在每个浏览器中仅登录一次。

解决方法

Vaadin 在处理任何可能改变服务器端状态的请求时获取整个会话的锁。如果有多个 UI 属于同一个会话,则它们共享该锁。这是一个基本的架构设计选择,如果不进行大量内部返工,就无法避免。

推荐的处理方法是避免在持有该锁时做缓慢的事情。这通常意味着您将实际工作提交到后台线程,然后将 UI::access@PushUI::setPollInteval 结合使用来更新 UI 并使这些更改在浏览器中可用一次后台工作完成。

,

每个浏览器选项卡都是不同的用户界面,但它们共享相同的会话。 Vaadin 14 不限制打开多个 UI,但如果您的登录逻辑与 UI 相关联,则可能会如此。