Extjs формы проблемы с производительностью - PullRequest
0 голосов
/ 08 февраля 2010

Мы используем большие формы ввода с парой полей ввода и сталкиваемся с проблемами производительности. Точная проблема - время рендеринга формы. Требуется пара секунд (4-10 секунд) для отображения формы. Мы используем многостолбцовый макет и ~ 30 комбинированных полей, загруженных хранилищем данных json, и еще ~ 10 полей ввода. Процесс рендеринга настолько медленный, что я вижу процесс выравнивания и отображения формы. Есть ли способ ускорить процесс отображения?

Ответы [ 4 ]

1 голос
/ 31 августа 2012

Попробуйте собрать все данные выпадающего списка в одном слоте, затем загрузите данные, используя метод store.load

0 голосов
/ 27 мая 2015

Это может быть полезно для кого-то:

У нас та же проблема с несколькими флажками, и этот пост помогает нам решить ее.

Каждый раз, когда Form или другой контейнер добавляет элемент - его макет пересчитывается. Это приводит к проблеме рендеринга при большом количестве элементов.

Итак, вы можете:

  1. Добавить всех детей одновременно:
    container.add(panel, button, grid);
  1. Приостановить перерасчет макета:
    container.suspendLayout = true;
    addSomething();
    container.suspendLayout = false;
    container.doLayout();
0 голосов
/ 08 февраля 2010

Я также предлагаю, чтобы ваши магазины были проблемой. Вы пробовали FireFox? Или, как рекомендует @JJ, не загружайте магазины и не смотрите, что произойдет. Я бы также посоветовал отрисовывать ваши формы лениво, но похоже, что ваша проблема связана с магазинами.

Я видел похожую медлительность при загрузке магазинов (обычно запросы бэкенда занимают много времени). Итак, я создал один вызов AJAX для извлечения всех данных магазина. В обратном вызове AJAX проанализируйте содержимое полезных данных и распределите их по каждому хранилищу.

0 голосов
/ 08 февраля 2010

Может ли быть так, что данные, загруженные JSONStores, вызывают изменение выравнивания? Отключите все JSONStores и затем измерьте процесс рендеринга - вы увидите, что браузеру потребуется 30 секунд, чтобы выполнить 30 внутренних запросов!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...