2013-10-11 4 views
1

У меня есть законченное приложение AngularJS, в котором в основном отображается таблица со многими (400+) строками, загружаемая через $resources. Данные сортируются и доступны для поиска, а приложение - немного медленная загрузка (2s +) и да, я использовал $cacheFactory. Я тонкий, это проблема с ОЗУ.Как работать с большими данными в Angular

Я думал о загрузке всего 100 записей и перезагрузке автоматически после поиска, сортировки или прокрутки. Это ускорит приложение, но сделает поиск и сортировки очень медленными.

Как вы справитесь с этим в Angular?

+1

400+ строк данных сетки ничего. – zsong

+0

Вы могли бы [AngularJS Batarang] (https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk) проверить, что это просто проблема с отображением всех записей (скорее всего) или их сохранением Память. – TheHippo

+0

Предполагая, что вы используете 'ng-repeat' для отображения данных, этот вопрос также может зависеть от версии Angular.js, которую вы используете. 'ng-repeat' стал намного быстрее в 1.2. Но вы сомневаетесь в том, что на самом деле дать ответ. – TheHippo

ответ

5

Вы должны быть очень осторожны при решении вопроса о том, какие данные должны быть связаны двумя способами при работе с большими наборами данных, иначе вы подавите DOM и CPU с помощью выражений $ watch.

Я создал набор директив, которые связывают данные только один раз там, где это необходимо.

здесь ссылка на три я сделал это должно быть полезно:

https://gist.github.com/btm1

набор-атр - установить любой атрибут элемента с назначенным значением один раз и не добавить часы слушателя. U может использовать это для установки классов или атрибутов данных или идентификаторов.

set-if - использовать это вместо отображения или скрытия или переключения. Это оператор if, который оценивает только один раз и удаляет элементы из DOM

set-repeat - это потрясающе, особенно если то, что вы повторяете, не изменится, поэтому оно будет просто переходить через что-то однократно.

Я создал другие, что set-text, set-html, set-href, set-source, и я нахожу, что использую их много, потому что большинство данных не обязательно должны быть связаны двумя способами.

+0

Спасибо за ваш ответ. Я проверю директивы сегодня или завтра. Интересно, почему Angular не построил их. –

+0

np, пожалуйста, проголосуйте за мой ответ, если найдете полезную информацию. – btm1

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