Ответ вслух Senior Клиент, сервер и контекст обновлено

Форма тормозит на удалённом клиенте

Вопрос

Пользователи в филиале жалуются, что форма документа очень медленно реагирует при изменении количества в строке. Как будете разбираться и что исправлять?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Сначала меряю: включаю замер производительности в отладке и смотрю, сколько серверных вызовов и сколько данных передаётся при изменении количества. Часто оказывается, что на каждое изменение вызывается &НаСервере, который тащит весь документ с табличной частью.

Что должно прозвучать в ответе

  • Замер: сколько серверных вызовов и данных на одно действие

  • Пересчёт суммы строки на клиенте, без сервера

  • Серверные вызовы без контекста и с минимальными параметрами

  • Объединение нескольких вызовов в один

  • Кеширование справочных данных на клиенте или в модуле с повторным использованием

  • Проверка на медленном канале и в веб-клиенте

Что могут спросить следом

  • Какой инструмент покажет число серверных вызовов?
  • Как поступить, если для пересчёта нужна цена из базы?

Разбор

Сначала меряю: включаю замер производительности в отладке и смотрю, сколько серверных вызовов и сколько данных передаётся при изменении количества. Часто оказывается, что на каждое изменение вызывается &НаСервере, который тащит весь документ с табличной частью. Пересчёт суммы строки (цена × количество) переношу на клиент: там все данные уже есть. Если нужна цена из базы, вызываю функцию без контекста с номенклатурой и датой, а не всю форму. Несколько вызовов объединяю в один, справочные данные кеширую. Проверяю результат на эмуляции медленного соединения.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.