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