Vaadin Framework 8提供了对Push 技术的内置支持,如手册中所述。
我们可以指定三种模式中的任何一种,其中一种是PushMode.MANUAL
,记录为:
推送已启用。在客户端和服务器之间建立了一个双向通道,用于通信状态更改和 RPC 调用。如果服务器端状态异步更改,则客户端不会自动更新;ui.push() 必须显式调用。
如果 Push 的全部意义在于自动更新客户端,我们为什么要使用这种模式?
Vaadin Framework 8提供了对Push 技术的内置支持,如手册中所述。
我们可以指定三种模式中的任何一种,其中一种是PushMode.MANUAL
,记录为:
推送已启用。在客户端和服务器之间建立了一个双向通道,用于通信状态更改和 RPC 调用。如果服务器端状态异步更改,则客户端不会自动更新;ui.push() 必须显式调用。
如果 Push 的全部意义在于自动更新客户端,我们为什么要使用这种模式?
两种模式都保持通信通道打开,以便可以随时从服务器向客户端PushMode.DISABLED
发送更新,相比之下,只能在响应客户端打开的请求以响应用户活动时向客户端发送更新.
不同之处在于实际使用此功能的时间。使用PushMode.AUTOMATIC
,只要会话解锁,即在运行ui.access()
已从后台线程调度的待处理任务之后,就会发送更新。
如果没有任何变化,则不会发送更新,但检查这种情况仍然有一些开销。也可能存在大量细粒度ui.access()
任务快速连续运行的情况,但不希望将它们全部作为单独的更新发送给客户端。
的目的PushMode.MANUAL
是让应用程序开发人员控制何时通过显式调用实际发送更改ui.push()
。这使得在自动模式会导致过度推送的情况下更好地优化资源消耗成为可能。这很少需要,但这种可能性仍然存在。