Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Концепция бесконечного скроллинга (https://javascript.ru/forum/offtopic/42588-koncepciya-beskonechnogo-skrollinga.html)

OlgaMarius 01.11.2013 17:29

Концепция бесконечного скроллинга
 
Здравствуйте, уважаемые форумчане, новички и гуру юзабилити =)

Возникла идея объединить одно и другое - бесконечный скролл и переключатели страниц + использовать хистори АПИ для смены ссылок в браузере и еще дополнить несколькими идеями и приятными мелочами.

Скрипты сейчас пишу и оптимизирую. Но нужна обратная связь. Есть концепция в виде анимации - http://forum.ucoz.ru/_fr/527/8580801.gif

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

animhotep 01.11.2013 19:07

Цитата:

Сообщение от OlgaMarius
минусы

в том что все ваши 100500 страниц будут в оперативке, а она не бесконечна
лично я противник бесконечных страниц в принципе, у них больше минусов чем профита

FINoM 01.11.2013 19:43

Интересная идея. Но блоки сверху надо удалять, оставляя большой пустой див, а, затем, при скроллинге вверх, возвращать обратно. Это решит проблему, описанную предыдущим оратором.

Лично я тоже не могу пользоваться текущими реализациями бесконечного скролла из-за того, что в какой-то момент, комп начинает адски тупить.

А так, круто. Есть только ряд технических вопросов, например, что делать, если человек кликнул на N-ю страницу в пагинации, находясь на странице N-100.

OlgaMarius 01.11.2013 20:27

Спасибо. Ставлю в приоритет удаление лишних блоков. В принципе это задумывалось, но не стояло первоочередной задачей. Но теперь пересмотрела подход.
При клике... есть одна задумка... Сайт прокручивается вниз в нее загружается запрашиваемая страница. Только между текущей и загруженной страницей (например, исходная страница 3, а загруженная - 12) ставить символическое ненавязчивое обозначение того, что тут есть пропущенные страницы.

страница 1
блок 1
блок 2
блок 3
====...========
страница 12
блок 1
блок 2
блок 3

Ай, надо гифку обновить, рассказывать не интересно =)

FINoM 01.11.2013 20:29

А для чего вы это делаете, если не секрет?

OlgaMarius 01.11.2013 20:45

Если совсем честно, то просто для души. Применю на одном из сайтов, но какой-то критичной необходимости в этом, конечно, нет.

nerv_ 01.11.2013 20:50

Цитата:

Сообщение от animhotep
в том что все ваши 100500 страниц будут в оперативке, а она не бесконечна
лично я противник бесконечных страниц в принципе, у них больше минусов чем профита

я тоже не сторонник. Пагинация спасет мир. Кроме того, можно будет сослаться на страницу. В конце концов, пагинацию можно анимировать )

cyber 01.11.2013 23:42

OlgaMarius, только если:
1. Подгружать страницы через ajax походу скроллинга к ним
2. держать в памяти не более 5-10 (в зависимости от размера) страниц, т.е если пользователь находиться на 20 странице то ему доступны без загрузки 15-20 страницы

OlgaMarius 02.11.2013 00:13

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

cyber 02.11.2013 00:17

OlgaMarius, главное что бы не было утечек памяти.

OlgaMarius 02.11.2013 00:31

Цитата:

Сообщение от cyber (Сообщение 279164)
OlgaMarius, главное что бы не было утечек памяти.

О, боги. Тут я полный ноль... Запретить кеш и проверять удаленные элементы?

cyber 02.11.2013 00:36

Цитата:

Сообщение от OlgaMarius
О, боги. Тут я полный ноль... Запретить кеш и проверять удаленные элементы?

нет, прочитайте http://learn.javascript.ru/memory-management и http://learn.javascript.ru/memory-leaks

OlgaMarius 02.11.2013 00:39

Спасибо, изучим.

BETEPAH 02.11.2013 00:50

Цитата:

Сообщение от OlgaMarius
бесконечный скролл и переключатели страниц + использовать хистори АПИ

интересно было бы посмотреть на реализацию

jsru_ 02.11.2013 00:57

Цитата:

Сообщение от BETEPAH (Сообщение 279169)
интересно было бы посмотреть на реализацию

vk.com?

BETEPAH 02.11.2013 01:06

Цитата:

Сообщение от jsru_
vk.com?

не пользуюсь этой сетью, но если там слизано с fb, то хистори АПИ не участвует. Да и переключателей вроде нет. А чисто бесконечный скролл, конечно не интересен :)

Gozar 02.11.2013 01:56

Бедные пользователи. Никакого тебе кэша, тормоза и утечки. У пользователей кроме вашего сайта обычно открыто еще 20 других, которые в ГГЛХроме работают в фоновом режиме, от чего память дико течет. Ни дай боже открыть какоенибудь друпал или что-то в этом духе с тинимсе на борту или гмейл и браузер рухнет.

По сути это переизобретение pdf с отсутствием вменяемого поиска на странице.

OlgaMarius, вы придумали зло!

Gozar 02.11.2013 02:45

пс: 5-7 лет назад многие изобретали книжки с переворачивающимеся страницами во флеше, теперь изобретают гуглкартинки. Разница между вашим изобретением и гглкартинками только в том, да по сути нет разницы, гглкартинки у меня вешают хром, если памяти меньше 16 гигов.

__Maxmaxmaximus__ 02.11.2013 04:10

Оперативку не жрет сказали же! Просто анимация перехода с одной страницы на этом форуме на другую это - белый экран в 3 секунды. А там будет анимация уезжания вверх. Памяти это жрать не будет, повторюсь мы ПРОСТО ЗАМЕНЯЕМ АНИМАЦИЮ с никакой на АНИМАЦИЮ перемещения вверх, пнятна? ПО ФАКТУ. Вверху меняется и адрес и все такое, и при переходе по нему приложение само (заскролится) на нужную сраницу.


Просто переход по страницам сделан не ТЫКАМИ НА ЦИФЕРКИ как на этом форуме. а КРУЧЕНИЕМ КОЛЕСИКА!! Пнятна?

Gozar 02.11.2013 13:20

__Maxmaxmaximus__,
Семки врот и го на лавку. Пока ты пишешь в вакууме у тебя будет скролицца куда ты там нафантазировал, а когда дело дойдет до перерисовки страниц, то получаем тормоза. Не нужно быть гением, чтобы это понять.

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

Здесь обсуждается самое обычное одностраничное приложение с перерисовкой страниц. ЗАЧЕМ?!
Добавь раскрытое меню на страницу и придется раскрывать это меню каждый раз при отрисовке страницы. Идея just for fun. Я тоже люблю монитором заколачивать гвозди just for fun, но гвозди при этом заколачиваются фигово.

Gozar 02.11.2013 13:22

Цитата:

Сообщение от __Maxmaxmaximus__
Памяти это жрать не будет

Будет, даже доказывать не нужно.

OlgaMarius 02.11.2013 17:46

А чем будет заполняться память? И о какой отрисовке идет речь? Задумано удалять блоки и заменять их одним большим блоком, как мне подсказали в этой теме. Загруженные 5 страниц отрисовывать при скроллинге тоже нет необходимости, так как блоки в крайних страницах можно просто скрыть стилями (картинки в них).

заглушка - скрытые блоки - загружено - текущая - загружено - скрытые блоки - заглушка

Я что-то упускаю, возможно... Но тесты все покажут)

Gozar 02.11.2013 18:30

Цитата:

Сообщение от OlgaMarius
А чем будет заполняться память?

http://learn.javascript.ru/memory-leaks

То, что там в основном про IE не значит, что память не течет в других браузерах. Достаточно рекурсивно вызывать функцию, которая будет накапливать какой-то объем данных, например страницы и получается утечка.

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

То, что вы пишете - это долгоживущее приложение и память может накапливаться все время пока открыта вкладка!

Gozar 02.11.2013 18:34

Изобретать браузер в браузере забавно, но высока вероятность получить говноскрипт. Тестировать такое приходиться на разных по мощности компьютерах, как минимум. Кстати тесты тоже могут создавать утечки памяти :) хотя на самом деле в приложении утечек не будет.

OlgaMarius 02.11.2013 19:09

о, боги. ну в принципе понятно, да... спасибо за пояснения и мнение.
---
Но зато just for fun все покрывает)

Gozar 02.11.2013 23:47

Цитата:

Сообщение от OlgaMarius
о, боги. ну в принципе понятно, да... спасибо

Да пожалуйста, все равно это гуано работать так как вы себе это представляете на гифке не будет, если не загрузить все страницы(объектом) в память - интернет он Такой интернет ... :). Отсюда вытекающие, если в этом нет жизненной необходимости, то это говноскрипт.

Gozar 02.11.2013 23:49

Для саморазвития такие проекты самое то

__Maxmaxmaximus__ 03.11.2013 04:32

Цитата:

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

На чем основано это утверждение?

Цитата:

Сообщение от Gozar
Будет, даже доказывать не нужно.

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

__Maxmaxmaximus__ 03.11.2013 04:36

OlgaMarius,
да не слушай ты его он фигню говорит он так и не ответил на твой вопрос чем будет заниматься память, он тупо дал ссылку на урок про утечки) потому что слова свои обосновать не смог зная что ты нуб) КЭП

Утечки будут в любом проекте если ты пишешь с утечками к скроллингу это отношения не имеет совершенно он знал что ты это не знаешь вот и напсиал) идея годная не слушай раков с этого форума)) я серьезно говорю они не ЭЛИТА яваскрипта как ты думаешь наверное) обычные раки зарегестрировались и все)


Спроси его еще раз ЧЕМ БУДЕТ ЗАНИМАТЬСЯ ПАМЯТЬ, так как он не отвеитл на твой вопрос а по ссылке ответа нет)

Цитата:

Сообщение от Gozar
все равно это гуано работать так как вы себе это представляете на гифке не будет, если не загрузить все страницы(объектом) в память - интернет он Такой интернет ..

А шаблонизатор и хранение данных не, не слышал)? Впрочем ты видимо не отличаешь локалсторч от оперативки)




Короче девочка, не слушай его, идея годная и пилимая) пили тока не забывай про НОБХОДИМОСТЬ более сильнее следит за утечками, а так же я бы порекомендовал тебе юзать какой нить шаблонизатор чтоы подгружались только новые данные а не вся разметка которая и так повторяется, пнятна)?

cyber 03.11.2013 13:59

Цитата:

Сообщение от __Maxmaxmaximus__
да не слушай ты его он фигню говорит он так и не ответил на твой вопрос чем будет заниматься память, он тупо дал ссылку на урок про утечки) потому что слова свои обосновать не смог зная что ты нуб) КЭП

ладно объясню для тупых, евреев и тупых евреев.
Цитата:

Сообщение от __Maxmaxmaximus__
Утечки будут в любом проекте

Угу, только вот разница в том что если не перезагружать страницу по несколько часов и подгружать данные то утечки во много раз будут больше чем если переходить с полной перезагрузкой ,хороший пример вк, если загрузить много контента и оставить то памяти он сожрет не хило.

Цитата:

Сообщение от __Maxmaxmaximus__
я серьезно говорю они не ЭЛИТА яваскрипта как ты думаешь наверное) обычные раки зарегестрировались и все)

Я вроде не когда и не скрывал что я студент котрый занимается веб-разработкой , да и куда мне до тебя великого и могучего тролля

Цитата:

Сообщение от __Maxmaxmaximus__
Спроси его еще раз ЧЕМ БУДЕТ ЗАНИМАТЬСЯ ПАМЯТЬ, так как он не отвеитл на твой вопрос а по ссылке ответа нет)

Теперь ответ для тупых евреев , память будет заниматься дом объектами которые даже после удаления останутся в памяти.
Цитата:

Сообщение от __Maxmaxmaximus__
А шаблонизатор и хранение данных не, не слышал)? Впрочем ты видимо не отличаешь локалсторч от оперативки)

Это явный бред наркомана.
Цитата:

Сообщение от __Maxmaxmaximus__
Короче девочка, не слушай его, идея годная и пилимая) пили тока не забывай про НОБХОДИМОСТЬ более сильнее следит за утечками, а так же я бы порекомендовал тебе юзать какой нить шаблонизатор чтоы подгружались только новые данные а не вся разметка которая и так повторяется, пнятна)?

П.с OlgaMarius, __Maxmaxmaximus__ - это местный плохо развитый тролль, советую игнорировать его сообщения, и обращать внимание на сообщения пользователей с положительной "кармой"

__Maxmaxmaximus__ 03.11.2013 16:20

Цитата:

Сообщение от cyber
Угу, только вот разница в том что если не перезагружать страницу по несколько часов и подгружать данные то утечки во много раз будут больше чем если переходить с полной перезагрузкой ,хороший пример вк, если загрузить много контента и оставить то памяти он сожрет не хило.

1) утечек не будет в любом проекте
2) утечки к скроллингу отношения не имеют

Цитата:

Сообщение от cyber
Теперь ответ для тупых евреев , память будет заниматься дом объектами которые даже после удаления останутся в памяти.

1) Дом обьекты не останутся в памяти так как все чот уходит за пределы экрана будет удаляться из дом.
Цитата:

Сообщение от __Maxmaxmaximus__
Нет, все будет рисовать шаблонизатор а данные будут хранится в локалсторче.

Давай я поясню, ты видимо не совсем понял, есть html шаблоны в которые в определенные места подставляются данные. Как только страница уходит за пределы экрана то DOM элементы образовывавшие её исчезают. А снизу добавляется еще один такой шаблон и в него подставляются данные. Таким образом у нас в DOM одновременно хранится ну 2-3 шаблона одновременно. Все данные подставляемые новые подгружаются и кэшируются таким образом при скроллинге вверх они будут подставляться в шаблон не из интернета а из кэша.

Цитата:

Сообщение от cyber
Это явный бред наркомана.

Что тут бредового? У меня складывается впечатление что ты просто не достиг моего уровня, и когда слышишь нанотезнологичные вещи о которых я говорю ты думаешь что это магия. То есть ты на столько туп что думаешь что я туп. Это впечатление ложное я надеюсь? Слушаю ответ "Что тут бредового?"

Цитата:

Сообщение от cyber
__Maxmaxmaximus__ - это местный плохо развитый тролль, советую игнорировать его сообщения, и обращать внимание на сообщения пользователей с положительной "кармой"

Конечно игнорировать, если ты на столько туп чтобы понимать их то иди читай учебник чтобы достичь моего уровня.

Gozar 03.11.2013 17:09

__Maxmaxmaximus__,
Ты наверное уверен, что его придумали для того, чтобы там сайты хранить? Почему не в куках? Кто будет очищать localStorage?

Цитата:

Сообщение от __Maxmaxmaximus__
У меня складывается впечатление что ты просто не достиг моего уровня

Надеюсь никто и никогда не достигнет твоего уровня.

__Maxmaxmaximus__ 03.11.2013 17:11

Цитата:

Сообщение от Gozar
localStorage

локалсторч это не буквально loclstorge ты можешь организовать кэш как тебе удобно я для примера привел дляпросот ты чтобы обьяснить ему.

Цитата:

Сообщение от Gozar
Надеюсь никто и никогда не достигнет твоего уровня.

почему? у меня плохой уровень?

Gozar 03.11.2013 17:26

Цитата:

Сообщение от __Maxmaxmaximus__
почему? у меня плохой уровень?

Так себе, но главное, что ты невменяемый неадекват неспособный пойти на компромисс.

OlgaMarius 03.11.2013 17:43

Цитата:

Сообщение от __Maxmaxmaximus__ (Сообщение 279329)
1) ...html шаблоны...

Это отличная идея, спасибо =) надо подумать.

Цитата:

Сообщение от cyber (Сообщение 279314)
память будет заниматься дом объектами которые даже после удаления останутся в памяти.

Хорошо, а тогда вопрос. Возникла идея, не удалять и создавать блоки в дом, а использовать уже имеющиеся повторно. Это решает проблему? Создаем пару блоков вначале и все... потом при скролле только перемещаем их один под другой.

__Maxmaxmaximus__ 03.11.2013 18:06

Цитата:

Сообщение от OlgaMarius
Это отличная идея, спасибо =) надо подумать.

Вот простейший прицеп как они работают) это мой шаблонизатор(еще в разработке) но все они по сути похожи

http://javascript.ru/forum/offtopic/...axmaximus.html

Цитата:

Сообщение от OlgaMarius
память будет заниматься дом объектами которые даже после удаления останутся в памяти.

Это не правда, не слушай его, обьекты после удаления очищаются автоматически если на них не остается ссылок. Тут имеется ввиду опасность где то забыть удалить ссылки и все. ОПАСНОСТЬ эта есть в любом приложении и я не понимаю почему они её и сюда приплетают.

OlgaMarius 03.11.2013 18:14

Цитата:

Сообщение от cyber (Сообщение 279314)
...обьекты после удаления очищаются автоматически если на них не остается ссылок. Тут имеется ввиду опасность где то забыть удалить ссылки и все.

Судя по статье, так оно и есть, но мало ли...

cyber 03.11.2013 18:28

Цитата:

Сообщение от __Maxmaxmaximus__
Вот простейший прицеп как они работают) это мой шаблонизатор(еще в разработке) но все они по сути похожи

UI.js от Maxmaxmaximus

OlgaMarius, Я и другие участники форума настоятельно не рекомендуем это использовать.

Цитата:

Сообщение от OlgaMarius
Хорошо, а тогда вопрос. Возникла идея, не удалять и создавать блоки в дом, а использовать уже имеющиеся повторно. Это решает проблему? Создаем пару блоков вначале и все... потом при скролле только перемещаем их один под другой.

Окей, вот пример
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <div id="main">
      <div id='content'>1243</div>
    </div>
    
    <script>

  var main = document.getElementById("main"),
      content = main.firstElementChild;
      
      main.removeChild(content);// удаляем
      
      console.log(content);// а он все еще в памяти

    </script>

  </body>
</html>

cyber 03.11.2013 18:31

OlgaMarius, Слушать советы __Maxmaxmaximus__ плохая идея, его не зря забанили...

cyber 03.11.2013 18:45

OlgaMarius, вот живой пример.
картинка 1 - твиттер , подгружен контент через ajax посредством скролла.
картинка 2 - так же страница через время, без подгрузки доп контента, кол-во используемой памяти выросло.
Если так оставить на ночь то к утру будет 200+ мб памяти.


Часовой пояс GMT +3, время: 15:27.