2013-04-01 2 views
2

Я работаю над сеткой, которую пользователи могут загрузить xml-файл и сделать редактирование с помощью панели сетки. Он хорошо работает примерно с 200 рядами. Однако некоторые пользователи могут захотеть загрузить 50000 записей за раз.Проблема с производительностью gridpanel Extjs с локальными данными

Когда я пытаюсь загрузить файл с записями 10k, сбои firefox и chrome ждут слишком много. После некоторой отладки я понял, что для отображения данных на панель требуется слишком много времени. для каждой новой строки мне нужно обновить сетку, которая требует слишком много времени.

Одним из важных моментов является то, что файл xml никогда не приходит на сервер, мы читаем его с помощью extjs и загружаем в сетку.

Is возможно целые данные нагрузки для хранения но запроса определенного количества данных для отображения панели вида?

Я пробовал inifinite сетку, но не могу заставить ее работать, так как источником данных является строка. Что вы предлагаете для управления 50k данными.

ответ

1

У меня была аналогичная проблема с ExtJS в прошлом при попытке загрузить очень большие сетки. Позвольте мне сразу сказать, что это, конечно, не их вина - 50 000+ записей - это просто слишком много данных. Чтобы обойти эту проблему, я применил пейджинг.

Посмотрите на their documentation для панели инструментов поискового вызова.

Адрес an example.

Мое единственное другое предложение - использовать бесконечную сетку, но напишите конверт преобразования файлов по вашим данным XML, чтобы преобразовать его в JSON.

+2

Для того, чтобы проанализировать ваш XML-объект и отправить фрагменты (разбиение на страницы) на ваш передний конец, вам нужно использовать какую-то базовую технологию. Ваша память будет взорваться, если u отобразит 50k записей в вашей сетке. –

+0

Я добавил пейджинг, это заметно повлияло на производительность. Однако теперь у меня есть еще одна проблема, которая обновляет pagingtoolbar после фильтрации хранилища. – tkcn

+0

На самом деле панель инструментов пейджинга - это управление параметрами, которые отправляются на сервер при запросе данных ('start' и' limit'). Для анализа этих параметров используется ваша серверная технология и используйте их значения для извлечения необходимых данных. Обычно я использую веб-службы .NET и WCF для выполнения моего извлечения данных. WCF предоставляет сериализацию объектов JSON, и его легко настроить для HTTP-запросов. [Вот пример WCF] (http://stackoverflow.com/questions/2086666/wcf-how-do-return-clean-json). При фильтрации вам также необходимо отправить значения фильтра в свой запрос. –

Смежные вопросы