- Verschifft
- 12. August 2026 um 22:47 UTC
- Autor
- kamo
- Ausschuss
- f4fead2
Das Öffnen eines langen Gesprächs zeigte zuerst die älteste geladene Nachricht und dann reiste bis zur Gegenwart, während das Mitglied wartete. Beide Chat-Flächen nach unten gescrollt, nur nachdem die Liste bereits oben gemalt hatte ChatBox über rAF - rAF setTimeout(0), TicketChat durch setTimeout(..., 50) - so dass die Reise garantiert war, und je länger die Geschichte der länger dauerte es. Das Scrollen geschieht nun in einem Layout-Effekt, vor dem Malen: das erste Frame, das das Mitglied sieht, ist die neueste Nachricht. Eine Ein-Schuss-Rolle reichte auch nicht aus, um dort zu bleiben. Anhängungen, Avatare und übersetzte Körper lösen nach den Zeilen zuerst gerendern und wachsen die Inhalte unter eine Liste, die bereits bis zum Ende gescrollt wurde, so dass das Mitglied etwas kurz vor dem Neueste Botschaft mit jedem Bild, das landet. Ein ResizeObserver re-pins, während sie sind eigentlich an der Unterseite, so kann es nie jemanden weiter nach oben zu kämpfen. Darüber hinaus hatte keine Oberfläche einen Weg zurück: Geschichte war eine Seite der meisten aktuelle 100 Nachrichten und alles, bevor es nicht erreichbar war. Beide jetzt Seite nach oben, wie der Leser nähert sich der Spitze, Verankerung auf der Höhe Delta so die Voraufgesetzter Block zieht sie nicht durch das, was sie lasen. Das Mitglied Chat geht durch Chat-Cor's neue loadOlder(); die Ticket-Chat, der seine eigenen Eigene holen, Seiten auf apiRowCount - nie messages.length, weil ein Der optimistische Send würde dann den Offset an einer realen Botschaft vorbeischieben. Glattes Scrollen wird für genau einen Fall aufbewahrt: eine Nachricht, die ankommt, während die Mitglied folgt bereits der Unterseite. Das ist das einzige Mal, wenn es beschreibt etwas, anstatt es zu verzögern.