Бесконечный скроллинг, оптимизация
Доброго времени суток
Тема поднималась неоднократно и на данном форуме, но используемые инструменты разные и поэтому решения не всегда подходят. Делаю мобильное приложение, поэтому к нагрузке все очень чувствительно. Сделал бесконечный скролинг, обьявления подгружаются пачками по 3 штуки. Каждая пачка представляет собой страничку, и записыввается в массив. Тоесть: pages = [ [advert array], [advert array], [advert array]... ] каждое обьявление состоит из различных пунктов, в том числе картинки и номера (их может быть разное кол -во) В итоге получаем дико лаганую систему, которая нагружает note 3 по полной, кога страниц уже штук 6 Это происходит потому что скопы пересчитываются, а там между прочим ng-repeatов дофига 1) распарсить страницы 2) распарсить обьявления 3) распарсить картинки телефоны и тд + картинки показаны в виде слайдера. Скорее всего нужно как то выводить ng-if ом, ненужные страницы, но как определить что я их не вижу? повесить на каждую обработчик, отсчитывать расстояние от окна боундректом и каждый раз проверять? Но ведь это всеравно сильно нагрузит. В общем, нужна ваша помощь с оптимизацией)) Заранее благодарен |
Не использовать ng-repeat
|
Цитата:
Ну ладно, там где некоторые массивы, сделаю joinом, сам затупил что не сделал Но в основном то шаблоне всеравно будут лаги, может быть вообще формировать самому шаблон и делать аппенд чайлд. Тогда и рипеатов не нужно, точна сделаю вечерком и так отпишусь nerv_, Спасибо! |
|
Написал директиву, которая генерирует шаблон и добавляет его в документ, когда появляются новые обьяления. Нагрузка на процессор минимальная, но вот оперативка естца. И все опять лагает)
Нужно как то выгружать Shitbox2, ща прочтемс) |
фтф, короче я скрываю все элементы которые не вижу (ng-if-ом) в коде нет ни одного ng-repeata, но всераввнноооо лаагииии. ааааа
|
Вообще мое мнение, что ангуляр и бесконечная подгрузка не совместимы :)
Впрочем, это касается не только ангуляра. Объекты висят в памяти, нужно очень много оптимизировать. Так что я против Бесконечный скроллинг, а за пагинацию. Поэтому написал сервис пагинации. Что касается ангуляра: недавно была задача - автокомплит на клиенте, список ~1000 элементов. Попытался использовать фильтр внутри ng-repeat - морозило интерфейс на 2-3 сек (на компе). Написал свою директиву и стало все хорошо :) |
Цитата:
Цитата:
Цитата:
|
Вообще, писать мобильное приложение на чистом angular не так удобно. Могу посоветовать http://ionicframework.com.
Отличное решение, и к стати проблема бесконечного скроллинга там решена. Список из 3000 элементов на galaxy s4 скролится как 10. |
Бесконечный скроллинг оптимизация
или что бы когда осталось 100 хп нажал 1 и у тебя опять 2700 не зависима на каком танке
|
Часовой пояс GMT +3, время: 09:05. |