Фон: Я работал над преобразованием нескольких страниц в наших приложениях, чтобы использовать AngularJS как попытку капитального ремонта архитектуры. Пока Угловая оказалась дружелюбной ко мне, а ее кривая обучения довольно резкая, но все в порядке.Как скрыть строки в ng-сетке
На одной из наших главных страниц у нас есть slickgrid, и я решил использовать ng-grid вместо slickgrid, чтобы спасти себя от головной боли в моем первом проходе. Из-за характера нашего приложения одни и те же данные будут отфильтровываться/не фильтроваться многократно в течение жизненного цикла страницы. Весь набор данных всегда будет оставаться одним и тем же, и пока есть только 20-40 точек данных.
Функциональность: он работает нормально, переназначив данные для gridOptins.data
. Тем не менее, наблюдается серьезная производительность, так как память увеличилась с ~ 20 МБ до ~ 64 МБ только в течение нескольких циклов фильтрации. И это медленно (> 40 мс), чтобы сетка завершила повторную визуализацию. Профилировщик временной шкалы показывает, что огромное количество DOM создается каждый раз при изменении данных в сетке.
Я убедился в том, что нередко часто удалять/вставлять точки данных из ng-сетки, и я ищу обходное решение этой проблемы. Один из них просто скрывает точку данных, но я еще не видел примеры, иллюстрирующие это.
Другие предложения также приветствуются.
редактировать: Вот plunkr:
Попробуйте щелкнуть фильтр часто и смотреть общий объем памяти, строить себя вверх.
Какой браузер вы используете? Я заметил много использования памяти в IE. Мы фактически переходим на Таблицы данных, так как у него нет проблем с памятью. –
Я использовал Chromium на Ubuntu, когда впервые увидел проблему. Я могу проверить, что проблема с утечкой памяти также произошла в Chrome на Mac, хотя и в меньшей степени. – Ekkmanz
см. Здесь http://www.bennadel.com/ru/blog/2485-Рабочие-With-Inherited-Collections-In-AngularJS.htm – bresleveloper