Scroll to the bottom of a long thread and refresh the page.
Grab the scroll bar and scroll up to the top of the page. You’ll see a loading spinner while the previous posts load. (You can make this problem more obvious using a network conditioning tool, e.g. Chrome Dev Tools Network tab, Slow 3G.)
Actual: As the posts load, the scroll jumps around.
In the linked video, you can see that RBoy’s post #76 “Maybe codinghorror can confirm” is at the top of the screen; then, when the subsequent page finished loading, the scroll jumps up to lid’s post #9 “It will be interesting to see if…”
Expected: The previous page should appear without disturbing the scroll position; whatever I saw on the screen as the previous page loads should still be on the screen when it’s drawn in.
That just looks like posts are loading as you scroll up. It’s worse when you limit network speeds because the data takes longer to traverse a slower network.
Try scrolling using the handle on the timeline scroller. It won’t jump around because more posts aren’t being loaded ahead and causing the position of the scrollbar to be recalculated. It’s a big part of why it’s there to begin with.
I agree that this is happening because the posts are loading. With a slow network, I can reproduce this just scrolling with trackpad/mouse wheel. (Would it help to post a demo video of that?)
This problem is occurring only when scrolling up because when scrolling down, Discourse draws in a bunch of grey filler; when the posts become available, they pop in right where they’re supposed to be and the scroll doesn’t jank.
It happens because pages are rendered from top to bottom, Discourse doesn’t know the height of posts before they arrive. I can see the scrollbar hopping around as you drag up, using the scroller at least mitigates against the problem by scrolling to the absolute top of each reply.
For the record, this is a very difficult problem. And scrolling down is fundamentally different because you’re not stacking things on top of the viewport. A variable height post causes no problems when added to the bottom, but consider what it does when stacked on top.
Unsere Community erlebt seit Kurzem beim Hochscrollen ebenfalls ruckelnde und fehlerhafte Bildschirmdarstellungen:
Handelt es sich dabei ausschließlich um ein Softwareproblem? Gibt es noch weitere Maßnahmen, die wir ergreifen können, um die Benutzererfahrung beim Hochscrollen zu optimieren?
Ja, das ist der Fall. Als Moderator sehe ich keine Werbung, und das Hochscrollen ist immer noch fehlerhaft.
Ist es sinnvoll, dass die Software nicht „zurückspringt", wenn Nutzer zu schnell nach oben scrollen? Ich gehe davon aus, dass das Problem dadurch verursacht wird, dass Nutzer zu schnell nach oben scrollen, sodass die Beiträge nicht ordnungsgemäß gerendert werden, wie oben erklärt. Ich bevorzuge es, wenn der Bildschirm einfriert, anstatt dass er zurückspringt, nachdem die vorherigen Beiträge geladen sind, was Nutzer verwirrt.
Ich habe versucht, das Problem sowohl im normalen als auch im abgesicherten Modus zu reproduzieren, konnte es jedoch nicht nachstellen. Ich habe Discourse vor zwei Tagen aktualisiert – ich bin mir nicht sicher, ob sich dadurch das Verhalten geändert hat. Ich werde meine Community nach weiteren Rückmeldungen fragen. Vielen Dank für die Rückmeldung!
Wir erhalten auch viele Meldungen dazu auf unserer Website. Ich habe es gerade getestet und festgestellt, dass das Problem auch im abgesicherten Modus weiterhin besteht. Hier einige aktuelle Meldungen:
Wir haben gerade einen Fehler behoben, bei dem Seiten mit ungewöhnlichen Einstellungen („Bildgröße nicht abrufen") Probleme mit Bildern hatten, die durch das Ändern der Bildgröße zu einem Scroll-Sprung führten. Diese Einstellung haben wir entfernt, da es sich um eine Einstellung handelte, die einem selbst ins eigene Fleisch schneidet. Prüfen Sie vielleicht, ob diese Option bei Ihnen aktiviert war.
Ein weiterer möglicher Übeltäter sind Werbeanzeigen.
Grundsätzlich führt alles, was die Ansicht dynamisch neu anpasst, zu großen Problemen.