#std629¶
Минимизация кода, выполняемого на клиенте¶
1.1.¶
Минимизируйте объем кода, который выполняется на клиенте. Не выполняйте на клиенте сложные алгоритмы, требующие значительных ресурсов компьютера.
В таких сценариях выполнение на клиенте может занимать больше времени, чем передача управления на сервер, выполнение алгоритма на сервере и возврат результата.
Размещайте такие алгоритмы на сервере и делайте минимально необходимое число вызовов с клиента.
Это требование связано с тем, что:
- клиентский компьютер обычно менее производителен, чем сервер;
- в веб-клиенте клиентский код выполняется интерпретатором встроенного языка заметно медленнее, чем в тонком или толстом клиенте.
См. также¶
#std487: Минимизация количества серверных вызовов и трафика.
1.2.¶
На клиенте оставляйте алгоритмы, которые гарантированно выполняются быстрее, чем стоит один серверный вызов.
Например, пересчет доступности элементов формы при изменении данных пользователем выполняют на клиенте, так как #std636: контекстный серверный вызов для сложной формы может сделать работу пользователя неприемлемой.
См. также¶
#std533: Особенности табличного документа в веб-клиенте.
2.1.¶
Исключение: подсистема предназначена для работы с ПО, установленным на клиентском компьютере. Например:
- работа с торговым оборудованием;
- интеграция с клиент-банком;
- формирование печатных форм в офисные программы.
2.2.¶
Если подсистема работает с клиентским ПО только в отдельных режимах клиента, используйте директивы препроцессора.
Например, для кода, недоступного в веб-клиенте:
#Если ВебКлиент Тогда
Предупреждение(НСтр("ru = 'Загрузка адресного классификатора не доступна в веб-клиенте.'"));
#Иначе
ОткрытьФорму("РегистрСведений.АдресныйКлассификатор.Форма.ФормаЗагрузкиАдресногоКлассификатора");
#КонецЕсли