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

OlgaMarius 03.11.2013 19:03

cyber, понятнооо.
Да, чем-то заполняется память. эх...

cyber 03.11.2013 19:35

Цитата:

Сообщение от OlgaMarius
Да, чем-то заполняется память. эх...

НЕ чем то ,а читать нужно внимательнее...
Цитата:

1.Приложение, в котором посетитель все время на одной странице и работает со сложным JavaScript-интерфейсом. В этом случае утечки могут постепенно съедать доступную память.
2.Страница регулярно делает что-то, вызывающее утечку памяти. Посетитель (например, менеджер) оставляет компьютер на ночь включенным, чтобы не закрывать браузер с кучей вкладок. Приходит утром — а браузер съел всю память и рухнул и сильно тормозит.
П.с лично мне всеравно сколько браузер жрет памяти, главное что бы не более 8 гиг, но не у всех по 16 гиг оперативки...

Gozar 03.11.2013 19:38

Цитата:

Сообщение от OlgaMarius
чем-то заполняется память

Объектами, DOM так называемым кэшированием. по сути мусором который оставляет программист. setTimeout - злейший враг, может накапливать медленно гору мусора. Создание простого стека, вызов по таймеру и заполнение его, например объектами формы(которую заполнил пользователь) со временем приводит к съеданию памяти.

Сборщик мусора работает только там, где не работает логика программиста ;)

Цитата:

Сообщение от cyber
не у всех по 16 гиг оперативки...

Бывает и у кого 16 тормозит :(, при этом не открываю больше 20 вкладок.

cyber 03.11.2013 19:46

Цитата:

Сообщение от Gozar
Бывает и у кого 16 тормозит , при этом не открываю больше 20 вкладок.

может процессор не справляется?
у меня i5, 30+ вкладок и все ок, конечно если случайно не задать 10 триллионов итераций на одной из вкладок (сравнивал скорость работы функций и добавил пару лишних 0) ))

Gozar 03.11.2013 19:51

Цитата:

Сообщение от cyber
может процессор не справляется?

неа, тупо память жрет. обычно на проце не больше 100% одного ядра из 4-х. Иногда забываю, что открыты Гуглкартинки, яндексчегонибудь, tree.js еще чего-нибудь ... но чаще всего тормозить начинает если попадаешь на такой сайт как у ТС.

cyber 03.11.2013 19:58

Gozar, хм ну из подобных сайтов у меня только твиттер открыт который минимум 70 метров, когда вижу новые твиты просто обновляю страницу и вроде проблем нет, а если начинать использовать данные подгруженные через ajax , то и за 200 + улетает

Maxmaxmaximus1991 03.11.2013 19:59

1) Не слушай их, проблема утечек памяти присутствует всегда, и скроллинг тут совершенно не при чем.

2) Понизить опасность где то забыть удалить ссылку на обьект позволяет использование шаблонизаторов

3) мой использовать не нужно так как ты его не где не возмешь так как он в разработке еще, но суть всех шаблонизаторов там описана и ты примерно поймешь как они работают)

BETEPAH 03.11.2013 20:05

OlgaMarius,
слишком много воды здесь налито, имхо. В любом случае, мне Ваша идея тоже интересна, даже если just4fun, поэтому на меня можете рассчитывать, если все-таки сядете писать.

OlgaMarius 03.11.2013 20:41

Цитата:

Сообщение от BETEPAH (Сообщение 279373)
OlgaMarius,
слишком много воды здесь налито, имхо.

Да, и пока ни строчки кода, сори)) тут каждый день подход меняется просто... Но я определилась (почитаю еще про шаблонизаторы только).

Вот упрощенная схема:
Представим, у нас имеется файл с книгой для простоты. Всю книгу загружать сразу не хотим. Тем более что читатель книги вряд ли ее прочитает за 1 раз. Так зачем лишнее грузить? Грузим по частям по мере прокрутки. При этом делаем так.

1. Создаем 2 блока один под другим. И загружаем в первый блок текст.
2. Когда пользователь дочитал до конца первой страницы - загружаем текст во второй блок.
3. Когда пользователь дочитал до конца вторую страницу, перезаписываем просто текст в первом блоке и стилями позиционируем его ниже второго.
4. Когда пользователь дочитал до конца третью страницу, перезаписываем текст в предыдущем блоке и отменяем стили.

Сумбурно объясняю, наверно, но надеюсь понять можно. Вот на этой схеме и остановлюсь. При этом никаких удаленных элементов дом нет, которые в памяти накапливаются. Красота. Посмотрим, что выйдет)

cyber 03.11.2013 20:43

Цитата:

Сообщение от OlgaMarius
Да, и пока ни строчки кода, сори)

Ну ваша идея, ваш код)

cyber 03.11.2013 20:52

Цитата:

Сообщение от OlgaMarius
1. Создаем 2 блока один под другим. И загружаем в первый блок текст.
2. Когда пользователь дочитал до конца первой страницы - загружаем текст во второй блок.
3. Когда пользователь дочитал до конца вторую страницу, перезаписываем просто текст в первом блоке и стилями позиционируем его ниже второго.
4. Когда пользователь дочитал до конца третью страницу, перезаписываем текст в предыдущем блоке и отменяем стили.

А не удобнее тогда сделать ajax переход между страницами?
Плюсы:
1. легче в реализации.
2. понятнее для пользователя чем скролл на 1 одну страницу

BETEPAH 03.11.2013 21:18

Цитата:

Сообщение от OlgaMarius
1. Создаем 2 блока один под другим. И загружаем в первый блок текст.

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

Gozar 03.11.2013 21:28

Хочу с первой на 20 прыгать и чтобы мгновенно, хочу вывести весь текст на 1 страницу или по 20 блоков на страницу. А у меня монитор большой, сколько блоков у меня будет?

Цитата:

Сообщение от cyber
А не удобнее тогда сделать ajax переход между страницами?

а как же плавная прокрутка?

cyber 03.11.2013 21:47

Цитата:

Сообщение от Gozar
а как же плавная прокрутка?

подгружаем страницу в фоне, после загрузки делаем анимацию перехода.

Maxmaxmaximus1991 03.11.2013 22:38

Цитата:

Сообщение от Gozar
Хочу с первой на 20 прыгать и чтобы мгновенно

Как её концепция противоречит этому желанию?

Цитата:

Сообщение от cyber
подгружаем страницу в фоне, после загрузки делаем анимацию перехода.

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

nerv_ 03.11.2013 23:47

Цитата:

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

чтобы достигнуть твоего уровня, надо откатиться до нуля, а затем начать деградировать :) шутка )

я бы еще рассматривал задумку в контексе чего-либо. В контексте интернет магазина я бы все-таки не стал так делать (если нет жестких требований, тчо должно быть именно так а не иначе); в контексте книжки-листалки почему бы и нет. Если книжка-листалка, то и аякс может быть не нужен. Зависит от объема инфы.

OlgaMarius 04.11.2013 13:56

Парсила сегодня через АПИ ХМЛ сайт один. Загрузила через скроллинг без удаления 50+ страниц и не тормозит даже на стареньком ноуте. cyber пугал, что у него с 16 гигов оперативки чуть ли не три новых твита (по 140 символов) тормозит, а тут не тормозит) Чет сижу ржу))))
-----
А не удобнее тогда сделать ajax переход между страницами? Удобнее, конечно. И проще, но мы не ищем легких путей, тем более что...

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

Хочу с первой на 20 прыгать и чтобы мгновенно, хочу вывести весь текст на 1 страницу или по 20 блоков на страницу. - ну, всю книгу на 1 страницу не обещаю))) но над остальным подумаю. Во всяком случае мгновенный переход будет!

cyber 04.11.2013 14:04

Цитата:

Сообщение от OlgaMarius
Парсила сегодня через АПИ ХМЛ сайт один. Загрузила через скроллинг без удаления 50+ страниц и не тормозит даже на стареньком ноуте. cyber пугал, что у него с 16 гигов оперативки чуть ли не три новых твита (по 140 символов) тормозит, а тут не тормозит) Чет сижу ржу))))

Я не пугал, а показывал пример.

OlgaMarius 04.11.2013 14:06

Цитата:

Сообщение от cyber (Сообщение 279455)
Я не пугал, а показывал пример.

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

cyber 04.11.2013 15:23

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

Gozar 04.11.2013 15:43

Цитата:

Сообщение от OlgaMarius
Загрузила через скроллинг без удаления 50+ страниц и не тормозит

Я грузил в начальных тестах drug&drop окошки по 2000-5000 и они не тормозили, однако браузер падал через 2 часа ближе к релизу, так что абстрактно-ваккумные тесты ничего не значат.

Цитата:

Сообщение от OlgaMarius
Чет сижу ржу))))

Давай поржем вместе. Ты и вправду смешная. :D

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

Gozar 04.11.2013 20:44

Кстати анекдот в тему: есть такой сайт алиэкспресс, основной для нас интернет-магазин китая и т.д. Если долго вбивать разные запросы, то со временем он вырубает хром. А фишка в том, что он пишет запросы пользователя в localStorage и потом вероятно для экономии запросов на сервер дергает их из сториджа при этом если там стек объектов большой, то это вешает Хром. Перезагрузка страницы в таком случае проблему никак не решает, сторидж то не очищается. Если туда писать пустой массив при открытии страницы, то Хром не вешается. Кстати в Файрфокс та же лажа.

Вот такие вот бугагашечки, а вы говорите ржу ... ваше вашество!:cray:

BETEPAH 04.11.2013 22:53

Сегодня вышел интересный урок на подобную тему, мошт пригодится, оставлю на всякий случай ссылку здесь http://ruseller.com/lessons.php?rub=32&id=1902

cyber 04.11.2013 23:25

вот кстати
картинка 1
картинка 2
память будет жрать по любому, а сколько зависит от реализации

nolan23 07.01.2014 13:32

только сейчас проверил на одном своем сайте. использовал chrome Версия 31.0.1650.63 для mac os.
это форум. на странице просмотра темы реализована подгрузка страниц аджаксом. я подгрузил 20 страниц. интересно, что при начальном размере страницы в 119мб, при быстрой загрузке размер страницы увеличивался до 170мб, но, затем, через 1-2 минуты остановки, размер снизился до 126 мб.
затем, я загрузил еще 22 страницы. размер вырос до 196. и через минуту уменьшился до 156.
хотя, скрипт написан несколько лет назад, и, конечно же, ничего не удаляется, то есть все dom-объекты остаются на странице.
Поэтому интересно, есть ли смысл удалять dom-объекты и городить огород с удаляемыми страницами?
вот ссыль - http://club-lexus.ru/forum/viewtopic.php?t=69397 - под страницей кнопка "читать далее".

kostyanet 14.01.2014 06:49

Прокрутка с подгрузкой подходит только для хранения мусора. То есть всякого рода блогов к которым никто никогда не возвращается.

kostyanet 14.01.2014 06:51

Цитата:

Сообщение от Gozar
А фишка в том,

Что алиэкспресс по жизни был глюкавый, а когда туда русских программистов натащили ситуевина еще более усугубилась.

melky 14.01.2014 14:27

Цитата:

Сообщение от Gozar (Сообщение 279521)
Кстати анекдот в тему: есть такой сайт алиэкспресс, основной для нас интернет-магазин китая и т.д. Если долго вбивать разные запросы, то со временем он вырубает хром. А фишка в том, что он пишет запросы пользователя в localStorage и потом вероятно для экономии запросов на сервер дергает их из сториджа при этом если там стек объектов большой, то это вешает Хром. Перезагрузка страницы в таком случае проблему никак не решает, сторидж то не очищается. Если туда писать пустой массив при открытии страницы, то Хром не вешается. Кстати в Файрфокс та же лажа.

Вот такие вот бугагашечки, а вы говорите ржу ... ваше вашество!:cray:

про FileSystem API и исключения они не знают :)

cyber 14.01.2014 19:45

Цитата:

Сообщение от kostyanet
Прокрутка с подгрузкой подходит только для хранения мусора. То есть всякого рода блогов к которым никто никогда не возвращается.

Всегда знал что вк безполезный блог, а твиттер вообще редкая хрень (после последнего обвновления глючит невероятно).


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