Минимизация количества серверных вызовов и трафика
Продолжаем серию постов про клиент-серверное взаимодействие. И наверное это один из самых больших и важных, сложных стандартов.
#std487
1.1. ...
В общем виде следует руководствоваться тем, что на каждое действие пользователя в клиентском коде конфигурации не должно выполнять дополнительных вызовов на сервер. Любые исключения из этого правила требуют дополнительного обоснования.
...
Типовым исключением является неявный серверный вызов при первом обращении к клиентскому общему модулю. Например, вызов ТорговыеПредложенияКлиент.ОбновитьПредложения приведет к вызову сервера, если общий модуль ТорговыеПредложенияКлиент еще не был скомпилирован.
...
2.1
...
В случае если параметры для запуска клиентского приложения требуется запрашивать с сервера из разных мест клиентского кода, следует разместить такую функцию в общем серверном модуле с повторным использованием возвращаемых значений.
...
периодические проверки состояния сервера, например: передача данных о замерах производительности ..., проверка динамического изменения конфигурации или прав ... не чаще одного раза в двадцать минут.
...
4.2. При открытии формы не допускается выполнять обращений к серверу из кода модуля формы в обработчиках клиентских событий формы, таких как ПриОткрытии и ПриПовторномОткрытии.
...
В общем случае, целесообразно также объединять фоновые задания в одно для экономии ресурсов сервера на их запуск.
...
Если команда связана с выполнением бизнес-логики, которую возможно отработать только на сервере, то вся она должна выполняться за один серверный вызов.
...
8.2. В целях оптимизации передачи данных между формой объекта и формой подбора рекомендуется использовать временное хранилище, чтение и запись которого должна выполняться на сервере.
...
10. Особого внимания требуют клиентские методы и свойства объектов платформы, которые приводят или могут приводить к серверному вызову:
методы ПолучитьИзВременногоХранилища, УдалитьИзВременногоХранилища;
свойства Заголовок, Доступность, Подсказка, ТолькоПросмотр поля формы и т.п.
ПолучитьФункциональнуюОпциюИнтерфейса, ПолучитьФункциональнуюОпциюФормы,
полный список таких методов и свойств приведен в синтаксис-помощнике.
...
Также не следует вызывать серверные функции с повторным использованием возвращаемых значений, т.к. их результат кешируется только после первого вызова, а следовательно, при нем возникнет избыточное обращение на сервер.
...
11. Не следует передавать с клиента на сервер больше данных, чем нужно для выполнения задачи. Например, если для выполнения процедуры на сервере требуется только одно значение реквизита, то не следует делать вызов контекстным.
...
Постарался вычленить самое важное и нетривиальное, если не согласны или вас зацепил другой момент, то делитесь в комментариях💬
P.S. Полное описание стандарта по ссылке в начале поста
#ЧёПоСтандартам #std487