Я создал некий TabControl, в котором активирую Pages и в зависимости от PageNumber показываю таблицу (ng-repeats). Эта таблица является собственной директивой (самодельной Grid-директивой).
Теперь я вижу, что если у меня меньше вкладок, приложение работает быстрее, чем если у меня больше вкладок, хотя все страницы используют ngIf и не отображаются до тех пор, пока не будет установлен соответствующий номер страницы.
Я полагаю, это потому, что ngIf компилирует свое содержимое, хотя это и не должно быть, но я не могу понять суть этого при использовании профилировщика. Я просто вижу, что "compileNodes" вызывается очень часто.
Кто-нибудь испытывает то же самое? Есть ли идея обходного пути?
Редактировать: что также интересно, так это то, что в первый раз, когда я перехожу к tabcontroll (ссылка внутри одностраничного приложения), он работает быстрее, а в следующий раз - медленнее. Как будто что-то запоминается, хотя весь элемент управления с вкладками удаляется при переходе к другому содержимому.
Редактировать 2: я все еще пытаюсь понять это. Это может быть даже ngRepeat, поскольку я показываю свой TabControl внутри другого TabControl, который я делаю с ngRepeat. Достаточно интересно: в первый раз, когда я захожу на свою страницу, это происходит быстро, затем я перехожу на другую страницу, и когда я возвращаюсь, это происходит медленно! Сохраняет ли ngRepeat некоторые вещи в кеше?? Профиль браузера говорит мне, что в jQuery data_user -> cache есть некоторые вещи, которые не освобождаются (в Chrome до 9 МБ данных при каждом нажатии!!)
ng-if
s? - person user2943490   schedule 25.11.2014ng-if
работает путем клонирования существующих элементов DOM и сохранения их в памяти. Даже если исходный элемент будет удален из DOM, в памяти может остаться большое количество клонов. У вас очень большое количество узлов DOM? - person user2943490   schedule 25.11.2014