В обоих режимах канал связи остается открытым, так что обновления могут отправляться с сервера клиенту в любое время, по сравнению с PushMode.DISABLED
, который может отправлять обновления клиенту только в ответ на запрос, который клиент открылся как реакция на активность пользователя.
Разница заключается в том, когда эта возможность фактически используется. При использовании PushMode.AUTOMATIC
обновления отправляются всякий раз, когда сеанс разблокирован, т. е. после выполнения ui.access()
ожидающих выполнения задач, запланированных фоновым потоком.
Обновление не отправляется, если ничего не изменилось, но проверка этой ситуации по-прежнему имеет некоторые накладные расходы. Также могут быть ситуации, когда множество мелких ui.access()
задач выполняются в быстрой последовательности, но нежелательно отправлять их все в виде отдельных обновлений клиенту.
Целью PushMode.MANUAL
является предоставление разработчику приложения контроля над тем, когда изменения фактически отправляются, путем явного вызова ui.push()
. Это позволяет лучше оптимизировать потребление ресурсов в тех случаях, когда автоматический режим вызвал бы чрезмерное нажатие. Это требуется довольно редко, но возможность все же существует.
person
Leif Åstrand
schedule
26.03.2018