Vaadin 8 PushMode.MANUAL - Для чего используется этот режим?

Vaadin Framework 8 предлагает встроенную поддержку Технология push, как обсуждалось в руководстве.

Мы можем указать любой из три режима, один из которых PushMode.MANUAL, задокументировано как:

Push включен. Двунаправленный канал устанавливается между клиентом и сервером и используется для передачи изменений состояния и вызовов RPC. Клиент не обновляется автоматически, если состояние на стороне сервера изменяется асинхронно; ui.push() должен вызываться явно.

Если весь смысл Push заключается в автоматическом обновлении клиента, зачем нам вообще использовать этот режим?


person Basil Bourque    schedule 23.03.2018    source источник
comment
Например, когда вы хотите пушить каждые 5 минут (а не всегда). Это вопрос нагрузки   -  person André Schild    schedule 24.03.2018


Ответы (1)


В обоих режимах канал связи остается открытым, так что обновления могут отправляться с сервера клиенту в любое время, по сравнению с PushMode.DISABLED, который может отправлять обновления клиенту только в ответ на запрос, который клиент открылся как реакция на активность пользователя.

Разница заключается в том, когда эта возможность фактически используется. При использовании PushMode.AUTOMATIC обновления отправляются всякий раз, когда сеанс разблокирован, т. е. после выполнения ui.access() ожидающих выполнения задач, запланированных фоновым потоком.

Обновление не отправляется, если ничего не изменилось, но проверка этой ситуации по-прежнему имеет некоторые накладные расходы. Также могут быть ситуации, когда множество мелких ui.access() задач выполняются в быстрой последовательности, но нежелательно отправлять их все в виде отдельных обновлений клиенту.

Целью PushMode.MANUAL является предоставление разработчику приложения контроля над тем, когда изменения фактически отправляются, путем явного вызова ui.push(). Это позволяет лучше оптимизировать потребление ресурсов в тех случаях, когда автоматический режим вызвал бы чрезмерное нажатие. Это требуется довольно редко, но возможность все же существует.

person Leif Åstrand    schedule 26.03.2018