VAADIN:UI.access() 推送队列的大小
VAADIN: Size of UI.access() push queue
我想通过著名的网站监控我对客户的推送
UI.access() ... 服务器端的序列。
背景是我必须向我的客户传播大量推送,并且我
想确定一下,没有人排队。
我发现只有客户端 RPCQueue 具有 size(),但我不知道它是否是正确的项目,现在正在搜索如何访问它。
感谢任何提示。
格里
如果您想知道已使用 UI.access
但尚未 运行 入队的任务队列的大小,则可以使用 VaadinSession.getPendingAccessQueue
.
然而,这不会给出全貌,因为它不涵盖已应用于服务器端状态(即 UI.access
任务已执行)但尚未发送的更改给客户。根据更改类型和您使用的 Vaadin 版本,这些类型的更改会在几个不同的位置进行跟踪。
对于这种用例,最好使用内置的 beforeClientResponse
功能来尽可能晚地应用您自己的更改,而不是急切地应用更改。
Vaadin 版本最高为 8,您可以通过覆盖组件或扩展 class 中的 beforeClientResponse
方法来实现。您需要使用 markAsDirty()
来确保 beforeClientResponse
对于那个实例最终会是 运行。
Wit Vaadin 10 和更新版本,取而代之的是一个 UI.beforeClientResponse
回调,框架会在适当的时间向其提供一次 运行 回调。
我想通过著名的网站监控我对客户的推送 UI.access() ... 服务器端的序列。
背景是我必须向我的客户传播大量推送,并且我 想确定一下,没有人排队。
我发现只有客户端 RPCQueue 具有 size(),但我不知道它是否是正确的项目,现在正在搜索如何访问它。
感谢任何提示。
格里
如果您想知道已使用 UI.access
但尚未 运行 入队的任务队列的大小,则可以使用 VaadinSession.getPendingAccessQueue
.
然而,这不会给出全貌,因为它不涵盖已应用于服务器端状态(即 UI.access
任务已执行)但尚未发送的更改给客户。根据更改类型和您使用的 Vaadin 版本,这些类型的更改会在几个不同的位置进行跟踪。
对于这种用例,最好使用内置的 beforeClientResponse
功能来尽可能晚地应用您自己的更改,而不是急切地应用更改。
Vaadin 版本最高为 8,您可以通过覆盖组件或扩展 class 中的 beforeClientResponse
方法来实现。您需要使用 markAsDirty()
来确保 beforeClientResponse
对于那个实例最终会是 运行。
Wit Vaadin 10 和更新版本,取而代之的是一个 UI.beforeClientResponse
回调,框架会在适当的时间向其提供一次 运行 回调。