Любезные доны, поясните мне - чего иногда при нажатии на кнопку "Далее" оно перескакивает на несколько страниц обратно, и приходится заново проходить то что уже посмотрел?
Пока ты читал одну страницу, аноны напостили на две, вот ты и листаешь по новой.
но ведь я листаю бездну. если представить посты как стопку книг (сверху добавляются новые) то получается перейдя от самых последних к более старым - список должен оставаться неизменным, так как новое должно появляться "сверху".
или же тут отсчет страниц сжелан не с первого поста а с последнего? тогда да, если кто-то что-то запостит то список поплывет. но зачем?....
или же тут отсчет страниц сжелан не с первого поста а с последнего? тогда да, если кто-то что-то запостит то список поплывет. но зачем?....
не так
листай с конца...
благодарствую за столь ценный совет
Все дело в заблокированных тегах и подписках. Когда ты заходишь на страницу N, то она генерируется для тебя. После чего "далее" (например, страница N+1) вычисляется от неё на основе подписок и блоков. Если ты какое-то время тупил в экран, то при переходе на N+2 ты можешь получить не страницу расчитанную от N, а сгенерированную заново. Соответственно на неё могут попасть посты с соседних страниц, которые ты уже видел
хм.. допустим что так. но всё равно не понимаю зачем. если сделать отсчет от самого первого поста, отсортировать ВСЕ посты по дате, разбить все их на страницы а потом фильтровать для каждого юзера - проблема решена, так как заведомо не может появиться новый пост между старыми. да, будут пустые страницы для некоторых юзеров из-за фильтра, но они и сейчас есть.. всё равно не понял в чём сложность. мне кажется отсчет не с той стороны сделан
ты ёбнулся? у тебя ответ прямо в самом начале перед глазами: твой пост имеет номер 3457554
а теперь представь, что нужно перелопатить все эти 3,45 млн постов с учетом всех твоих подписок и заблокированных тегов. и заблокированных пользователей. и друзей.
представляешь, какая это блядская нагрузка на базу? это хуй закэшируешь
а теперь тоже самое для всех посетителей реактора
...
ПИЗДА ВСЕМУ НАХУЙ
поэтому вычисления проводятся не с самого первого поста, а берутся только несколько соседних страниц от той, которую пользователь запрашивает, с расчетом что на них найдется достаточно нужных постов для генерации ему не пустой странички
а теперь представь, что нужно перелопатить все эти 3,45 млн постов с учетом всех твоих подписок и заблокированных тегов. и заблокированных пользователей. и друзей.
представляешь, какая это блядская нагрузка на базу? это хуй закэшируешь
а теперь тоже самое для всех посетителей реактора
...
ПИЗДА ВСЕМУ НАХУЙ
поэтому вычисления проводятся не с самого первого поста, а берутся только несколько соседних страниц от той, которую пользователь запрашивает, с расчетом что на них найдется достаточно нужных постов для генерации ему не пустой странички
господи, че ж так нервничать? мне просто интересно стало чем вызвано такое достаточно раздражающее поведение.
а хуй его
никто-в-интернете-не-знает-что-ты-и-в-реальности-материшься-как-сапожник.жпг
никто-в-интернете-не-знает-что-ты-и-в-реальности-материшься-как-сапожник.жпг
Это всё весенняя депрессия.
я понимаю что так сделано, работает - не трогай. но чисто объективно - это очень раздражает. есть важный нюанс - если пагинация для каждого своя да еще и прыгает - получается она не нужна нахрен. я к примеру как пользователь ничем кроме кнопки "далее" никогда не пользовался. может было бы лучше сделать тупо бесконечный скролл, или же оставить одну кнопку "Далее" и пускай себе показывает что хочет, но без этих перескакиваний?
Чаще всего ответ на подобные вопросы - так исторически сложилось.
просто фигня очевидная для програмиста и неочевидная простому юзеру, который в принципе спрашивает вполне разумную вещь
насколько я понимаю у каждого юзера своя лента ( избранное \ инорируемое )
но теоретически никто ведь не мешает кнопку дальше зашить не номер следующей страницы, а номер последнего поста на странице в моей ленте
но на практике:
первое это простой запрос select(where USER_LENTA ).skip((PageNum-1)*itemsOnPage).take(itemsOnPage)
то второе уже заставляет модифицировать типовый фильтр еще одним параметром и строить что-то типа select(where USER_LENTA and POST>LASTPOST).Take(itemsOnPage)
насколько я понимаю у каждого юзера своя лента ( избранное \ инорируемое )
но теоретически никто ведь не мешает кнопку дальше зашить не номер следующей страницы, а номер последнего поста на странице в моей ленте
но на практике:
первое это простой запрос select(where USER_LENTA ).skip((PageNum-1)*itemsOnPage).take(itemsOnPage)
то второе уже заставляет модифицировать типовый фильтр еще одним параметром и строить что-то типа select(where USER_LENTA and POST>LASTPOST).Take(itemsOnPage)
Вот как раз с "исторически сложилось" в этом вашем программировании до хрена всего.
само собой. т.к. очень редко есть роскошь сесть и вдумчиво переписать все с нуля, работаешь с тем что есть, изредка рефакторишь то что попадается под руку в процессе.
а еще есть такое шикарное слово как "совместимость"
а еще есть такое шикарное слово как "совместимость"
вот и я о том же
ну а в чем сложность рассчитывать новую страницу с учетом последнего поста на предыдущей странице?
оно так и считается, если я не ошибаюсь, при листании
а вот почему оно сбивается так, словно ты просто открыл эту страницу, а не листал, то этого я не помню
кока когда-то уже отвечал на этот вопрос не один раз. можно поискать по постам в дев
а вот почему оно сбивается так, словно ты просто открыл эту страницу, а не листал, то этого я не помню
кока когда-то уже отвечал на этот вопрос не один раз. можно поискать по постам в дев
Добавлю свою ситуацию.
Неважно в какую сторону я листаю хоть бездну, хоть всё, хоть какой-то тег. Если я какое-то время не листал, то потом заново листаю, что уже видел. И не важно листал я с последнего поста и назад. Или с откуда нибудь с середины и вперёд.
Неважно в какую сторону я листаю хоть бездну, хоть всё, хоть какой-то тег. Если я какое-то время не листал, то потом заново листаю, что уже видел. И не важно листал я с последнего поста и назад. Или с откуда нибудь с середины и вперёд.
Такое ощущение что страниц становиться меньше, переход же по номеру идет. Если вкладка пару дней висит, то может и на десяток промазать.
Чтобы написать коммент, необходимо залогиниться