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