Infiniscroll is three times as fuckered
-
Usually, with regard to how awful infiniscroll is, I just suffer through, because at least it's not paginated. But sometime between November and now, it was changed, so that when scrolling upwards, if a new page was loaded, it scrolls you most of the way up it. This is not the image bug. The image bug puts you three or four posts up. This brings you up by about twenty to thirty. Infiniscroll is entirely unusable now, and I have to switch back to pagination.
Paging @barisu
-
@pie_flavor said in Infiniscroll is three times as fuckered:
I have to switch back to pagination
-
@pie_flavor said in Infiniscroll is three times as fuckered:
Infiniscroll is entirely unusable.
-
@pie_flavor said in Infiniscroll is three times as fuckered:
when scrolling upwards
threads should be read top to bottom.
I've noticed recently, though, that reading the right way through a long thread it sometimes jumps me down 20 or 30 posts.
-
@Jaloopa said in Infiniscroll is three times as fuckered:
threads should be read top to bottom.
They would be if the new post notification for watched threads brought me to the first new post.
Hey, that's an idea. Paging @barisu for this one too.
-
-
-
@barisu Similar: When you're watching a topic, and someone mentions you with a @mention in a reply to that topic, you get two notifications about the same new post. Collapsing those would be nice.
-
@Mason_Wheeler What happens if you're watching a topic and they mention you and a group that you're in?
-
@brie Alas, you are not in any groups I'm willing to mention randomly.
-
@PleegWat I'm also not watching any topics I'm willing to mention randomly.
-
I think that I've regularly witnessed the same thing as @pie_flavor and @Jaloopa are mentioning, although for me it has always happened (i.e. I remember it happening from day 1). I vaguely remember having already mentioned it in the past and either nobody could repro or it was too weird to do anything about it? This may depend on how fast/slow things are loading and the order of events firing...
As far as I can see, this happens when you read a very long thread and scroll fast enough. When you get to the end (at top or bottom, it happens both ways) of the batch of posts that is currently loaded, it loads more, but if you scroll fast enough something breaks. It seems to me that when this happens, your position on the scroll bar stays the same, but of course the contents of the viewport has changed (i.e. what was at the very bottom of the viewport is now somewhere in the middle, or even at the top if it unloaded the previous batch of posts), so it looks like you've jumped a lot of posts.
Annoyingly, when that happens, if you scroll very quickly to go back to where you were, you often also trigger the same issue but the other way round, so you end up suddenly jumping back beyond were you were initially.
E.g.: you're reading posts 1000-1100 and scroll fast towards the end, you get to 1095 so the scroll bar is 95% down. NodeBB decides to load 1100-1200, but something breaks and instead of staying around post 1095 (which now would be 50% of scroll bar), you stay at 95% of scroll bar which is now 1190. You then quickly scroll back/page up to go back to 1095, but in the meantime NodeBB has decided to unload posts 1000-1100, so when you get to, say, 1105, the same bug triggers in reverse and you're now back to 1005.
To get back to 1095, with posts above 1100 loaded, you need to approach the 1100 threshold slowly enough that NodeBB has time to load/unload whatever it wants without fucking up your position on the scroll bar.
-
@remi said in Infiniscroll is three times as fuckered:
very long thread
-
@remi I know about the quick-scrolling behavior, that's why I scroll slowly. This is new, and happens even if you're scrolling at a snail's pace.
-
Definitely happened to be downward in a thread with lots of one boxes.
-
@Magus I've long suspected that the habit of not measuring the actual content height of included media is at the core of the problem. Not that that's a simple thing to fix, but it is at least possible as there's all those clients that have read the page and which can quietly say “hey, this onebox is XYZ pixels high for me”. After an approximate consensus is reached for a mode of operation ( notwithstanding) it becomes possible to give a much better guess as to what the actual size of a post is prior to rendering.
The problem also gets worse if the websocket is playing up. SNAFU.
-
@dkf It doesn't even have to involve that. It's really simple: If the content you're loading is below the page, when it loads it should expand downwards. If it's above the page, when it loads it should expand upwards. That's such astoundingly obvious behavior that Discourse figured it out. Meanwhile, with NodeBB, it loads in the opposite direction - both times.
-
@pie_flavor Kid, Discourse is where we coined the word for this behavior.
-
@Magus said in Infiniscroll is three times as fuckered:
@pie_flavor Kid, Discourse is where we coined the word for this behavior.
-
@pie_flavor : The RDF; it's kind of like the Musk RDF, except it only works on one person.
-
@pie_flavor said in Infiniscroll is three times as fuckered:
If the content you're loading is below the page, when it loads it should expand downwards. If it's above the page, when it loads it should expand upwards
But AFAIK the web application doesn't control how a page expands.
The post was 100px before loading the content and it's 300px now. There's no way to tell Chrome "no, add these pixels upward", unless it hijacked the scrollwheel and scrolled down 200px for you? But that doesn't exactly seem like a clean solution.
-
@anonymous234 If there was no way to control it, it wouldn't be wrong in both directions. It'd just be wrong in one direction.
-
@pie_flavor said in Infiniscroll is three times as fuckered:
@anonymous234 If there was no way to control it, it wouldn't be wrong in both directions. It'd just be wrong in one direction.
Not necessarily.
Especially if the way you're implementing it is by literally replacing the whole set of elements above and below...
-
@levicki said in Infiniscroll is three times as fuckered:
@Tsaukpaetra Isn't it possible to prepend children elements to DOM tree and then scroll to top (note that I am not saying that is a good idea because it would probably trigger re-render of the whole page)?
Everything is possible with Zombo.com....
-