Пагинация
Хочу бесконечную ленту. Листаешь, листаешь, и она не кончается. Как в соцсетях. Никаких кнопок, никаких страниц. Просто поток.
Но есть проблема. Для бесконечной ленты нужен жирный JavaScript. Тот самый, от которого я ушёл. Тот самый, который весит, тормозит и жрёт батарею. Я же ради скорости всё это затевал. Ради того, чтобы на слабом интернете летало. А теперь получается, что для красоты надо вернуть жир обратно.
Не хочу. Жир не верну.
Думал про кнопку «загрузить ещё». Типа нажал, подгрузилась следующая порция. Пятнадцать строк JS, не жир. Но потом передумал. Всё равно это компромисс. Всё равно скрипт. Всё равно зависимость.
Значит, классическая пагинация. Страницы. Ссылки. «Назад», «вперёд». Как в старые времена. Скучно, зато честно.
И вот тут вопрос. Сколько постов на страницу?
Дело не в весе
Я сначала полез считать. Сколько весит карточка. Сколько весит страница. Сколько это всё по сети пролетит.
А потом понял. Это всё не то.
Карточка это заголовок, пара предложений, дата, просмотры. Мелочь. Меньше, чем аватарка в мессенджере. Хоть пятьдесят карточек, хоть сто. По сети пролетит незаметно. Страница лёгкая. Всегда.
И сервер отдаёт готовый HTML. Не надо ничего собирать в браузере. Пришёл текст, браузер его разобрал, показал. Быстро. Мгновенно. Хоть пятьдесят карточек, хоть сто.
Так что не в весе дело. Не в этом.
Дело в ощущении
Вот что важно.
Я хочу, чтобы лента ощущалась бесконечной. Не была бесконечной, а ощущалась. Ты листаешь, листаешь, и конца не видно. Не потому что он далеко. А потому что его не видно вообще. Где-то там, за горизонтом. А ты просто листаешь. Как в соцсетях.
И вот тут всё решает цифра.
Двадцать постов такого ощущения не дают. Ты листаешь, листаешь, и вот он, низ. Ссылки. Понимаешь, что это страница. Ощущение ленты пропадает. Появляется ощущение списка. А мне нужно первое.
Пятьдесят постов дают. Ты листаешь, а конца всё нет. И в какой-то момент перестаёшь думать о том, что он будет. Просто листаешь. Вот это и есть лента.
Не бесконечная. Постоянная. Конец где-то там, за горизонтом. И тебе пофиг, где он.
И читателю пофиг
Постоянный читатель вообще до низа не долистает. Заходит, смотрит верх, видит свежие посты, читает один-два, уходит. Ему всё равно, сколько там внизу. Хоть пятьдесят, хоть сто.
А тот, кто хочет листать, тот полистает. Ему двадцать свайпов не помеха. Ты в телефоне за день тыщи свайпов делаешь. Двадцать туда, двадцать сюда. Не заметишь.
SEO
Пагинация нужна не только для людей. Она нужна для поисковиков.
Бесконечная лента без JS плохо индексируется. Google может не увидеть посты, которые «ниже». А классическая пагинация со ссылками видит. Каждая страница это отдельный адрес. Отдельная страница для робота. Отдельный шанс, что тебя найдут.
Так что пагинация не компромисс. Это решение. И для скорости, и для поиска.
Итог
Пятьдесят постов на страницу. Классическая пагинация внизу. Ссылки на следующую и предыдущую. Без JavaScript. Без кнопок «загрузить ещё». Без жира.
Но главное не цифра. Главное ощущение. Пятьдесят постов делают так, что лента кажется постоянной. Не бесконечной. Постоянной. И этого достаточно.
Кто хочет листать, тот листает. Кто не хочет, не листает. Кто пришёл из поиска, попадает сразу на пост. Кто постоянный читатель, видит верх и уходит.
И всё это без единой строчки JS. Без бесконечного скролла. Без мегабайтов.
Я ради скорости всё это начал. Ради того, чтобы летало на плохом интернете и старом телефоне. Не хочу это потерять ради понтов.