user-interface - VAADIN:UI.access() 推送队列的大小
问题描述
我想在服务器端使用著名的 UI.access() ... 序列监视我对客户端的推送。
背景是我必须向我的客户传播大量推送,并且我想确保没有任何东西排队。
我发现只有客户端 RPCQueue 具有 size(),但我不知道它是否正确的项目现在正在搜索如何访问它。
感谢您的任何提示。
格里
解决方案
UI.access
如果您想知道已使用但尚未运行的任务队列的大小,则可以使用VaadinSession.getPendingAccessQueue
.
然而,这并不能给出完整的画面,因为它不包括已应用于服务器端状态(即UI.access
任务已经执行)但尚未发送到客户端的更改。根据更改的类型和您使用的 Vaadin 版本,这些类型的更改会在几个不同的位置进行跟踪。
对于这种用例,最好使用内置beforeClientResponse
功能尽可能晚地应用您自己的更改,而不是急切地应用更改。
对于最高 8 版的 Vaadin,您可以通过覆盖beforeClientResponse
组件或扩展类中的方法来完成此操作。您需要使用markAsDirty()
以确保beforeClientResponse
最终将为该实例运行。
在 Vaadin 10 和更新版本UI.beforeClientResponse
中,您可以向其提供一个回调,该回调将由框架在适当的时间运行一次。
推荐阅读
- r - R:如何手动创建类“rq”的对象?
- slack - 在自己的工作空间上调用 Slack API 上的链接展开端点,在第 3 方工作空间上出现错误“cannot_find_channel”
- php - wordpress elementor css类/样式在某些页面上不起作用
- swift - 如何在 Storyboard 中更改按钮背景
- c# - 使用 WindowsIdentity.RunImpersonated 模拟时无法执行任何操作
- c# - 带有图像的 Azure DevOps 中的 C# NuGet 包错误
- python - 接受 0 个位置参数,但给出了 2 个
- python - Python列表追加自动化
- vba - VBA - 错误 13 - 选择大小写 - 文本“*xxx*”
- django - Django 查询未到达页面