Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.07.2014, 15:41
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Бесконечный скроллинг, оптимизация
Доброго времени суток

Тема поднималась неоднократно и на данном форуме, но используемые инструменты разные и поэтому решения не всегда подходят.


Делаю мобильное приложение, поэтому к нагрузке все очень чувствительно.

Сделал бесконечный скролинг, обьявления подгружаются пачками по 3 штуки.
Каждая пачка представляет собой страничку, и записыввается в массив.

Тоесть:

pages = [
[advert array],
[advert array],
[advert array]...
]


каждое обьявление состоит из различных пунктов, в том числе картинки и номера (их может быть разное кол -во)

В итоге получаем дико лаганую систему, которая нагружает note 3 по полной, кога страниц уже штук 6

Это происходит потому что скопы пересчитываются, а там между прочим ng-repeatов дофига

1) распарсить страницы
2) распарсить обьявления
3) распарсить картинки телефоны и тд

+ картинки показаны в виде слайдера.


Скорее всего нужно как то выводить ng-if ом, ненужные страницы, но как определить что я их не вижу? повесить на каждую обработчик, отсчитывать расстояние от окна боундректом и каждый раз проверять?
Но ведь это всеравно сильно нагрузит.

В общем, нужна ваша помощь с оптимизацией))

Заранее благодарен
__________________
Научу себя плохому
Ответить с цитированием
  #2 (permalink)  
Старый 02.07.2014, 00:03
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Не использовать ng-repeat
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 02.07.2014, 07:51
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
Не использовать ng-repeat
Тоже думал об этом, но как? посвяти в тайну)

Ну ладно, там где некоторые массивы, сделаю joinом, сам затупил что не сделал
Но в основном то шаблоне всеравно будут лаги, может быть вообще формировать самому шаблон и делать аппенд чайлд.
Тогда и рипеатов не нужно, точна сделаю вечерком и так отпишусь

nerv_, Спасибо!
__________________
Научу себя плохому

Последний раз редактировалось l-liava-l, 02.07.2014 в 08:00.
Ответить с цитированием
  #4 (permalink)  
Старый 02.07.2014, 12:24
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Это тебе поможет
https://github.com/allaud/quick-ng-repeat
http://makeomatic.ru/blog/2014/03/28/Digest_angular/
Ответить с цитированием
  #5 (permalink)  
Старый 02.07.2014, 14:57
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Написал директиву, которая генерирует шаблон и добавляет его в документ, когда появляются новые обьяления. Нагрузка на процессор минимальная, но вот оперативка естца. И все опять лагает)
Нужно как то выгружать

Shitbox2,
ща прочтемс)
__________________
Научу себя плохому

Последний раз редактировалось l-liava-l, 02.07.2014 в 15:30.
Ответить с цитированием
  #6 (permalink)  
Старый 03.07.2014, 18:21
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

фтф, короче я скрываю все элементы которые не вижу (ng-if-ом) в коде нет ни одного ng-repeata, но всераввнноооо лаагииии. ааааа
__________________
Научу себя плохому
Ответить с цитированием
  #7 (permalink)  
Старый 03.07.2014, 19:38
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Вообще мое мнение, что ангуляр и бесконечная подгрузка не совместимы

Впрочем, это касается не только ангуляра. Объекты висят в памяти, нужно очень много оптимизировать. Так что я против Бесконечный скроллинг, а за пагинацию. Поэтому написал сервис пагинации.

Что касается ангуляра: недавно была задача - автокомплит на клиенте, список ~1000 элементов. Попытался использовать фильтр внутри ng-repeat - морозило интерфейс на 2-3 сек (на компе). Написал свою директиву и стало все хорошо
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #8 (permalink)  
Старый 04.07.2014, 00:04
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
Вообще мое мнение, что ангуляр и бесконечная подгрузка не совместимы
Эт да, удобство есть, а н*я не работает), там еще и обьявления в приложении тянуться, скажем не из легких.

Цитата:
Впрочем, это касается не только ангуляра. Объекты висят в памяти, нужно очень много оптимизировать. Так что я против Бесконечный скроллинг, а за пагинацию. Поэтому написал сервис пагинации.
А удобно то как)

Цитата:
Написал свою директиву и стало все хорошо
Ну такое сплош и рядом
__________________
Научу себя плохому

Последний раз редактировалось l-liava-l, 04.07.2014 в 00:13.
Ответить с цитированием
  #9 (permalink)  
Старый 17.08.2014, 19:20
Новичок на форуме
Отправить личное сообщение для rotorgames Посмотреть профиль Найти все сообщения от rotorgames
 
Регистрация: 30.07.2014
Сообщений: 5

Вообще, писать мобильное приложение на чистом angular не так удобно. Могу посоветовать http://ionicframework.com.
Отличное решение, и к стати проблема бесконечного скроллинга там решена. Список из 3000 элементов на galaxy s4 скролится как 10.
Ответить с цитированием
  #10 (permalink)  
Старый 10.09.2014, 08:05
Новичок на форуме
Отправить личное сообщение для hohoruck Посмотреть профиль Найти все сообщения от hohoruck
 
Регистрация: 01.06.2014
Сообщений: 3

Бесконечный скроллинг оптимизация
или что бы когда осталось 100 хп нажал 1 и у тебя опять 2700 не зависима на каком танке
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скроллинг по событию mousewheel ponyspy jQuery 0 30.11.2013 16:08
скроллинг фотографий. haligali jQuery 1 13.09.2011 09:03
Скроллинг на javascript Armen Общие вопросы Javascript 3 12.05.2011 12:04
Скроллинг с задержкой vladpro Работа 1 24.01.2011 22:12
Скроллинг с задержкой vladpro Общие вопросы Javascript 3 24.01.2011 14:00