Vaadin Framework 8 为推送技术提供内置支持,如手册中所述。
我们可以指定三种模式中的任何一种,其中一种是PushMode.MANUAL
推送已启用。在客户端和服务器之间建立双向通道,用于传达状态更改和 RPC 调用。如果服务器端状态异步改变,客户端不会自动更新;必须显式调用 ui.push()。如果推送的全部目的是自动更新客户端,
我们为什么要使用这种模式?
PushMode.DISABLED
只能在响应客户端已打开的请求时向客户端发送更新作为对用户活动的反应。
区别在于实际使用该能力的时间。使用
PushMode.AUTOMATIC
,只要会话解锁,即在运行从后台线程安排的待处理 ui.access()
任务之后,就会发送更新。
如果没有任何变化,则不会发送更新,但检查这种情况仍然有一些开销。也可能存在大量细粒度
ui.access()
任务快速连续运行的情况,但不希望将它们全部作为单独的更新发送给客户端。
PushMode.MANUAL
的目的是让应用程序开发人员能够控制何时通过显式调用ui.push()
实际发送更改。这使得在自动模式导致过度推送的情况下可以更好地优化资源消耗。这是很少需要的,但可能性仍然存在。我发现手动模式并没有真正直接显示更新/推送的值,它会等到UI“刷新”
这只是观察,我还没有深入研究技术细节。