Rendern und Hydration
Ember hat keinen eigenen Renderer. DocumentView projiziert das Dokument auf den scalajs-ui-Komponentenbaum, auf dem Server in HTML und im Browser auf die ausgelieferte Seite.
Eine geschlüsselte Projektion
Jeder Container bekommt nach NodeId geschlüsselte Kinder. Ein unveränderter Knoten wird nicht angefasst, und Tippen schreibt genau eine characterData-Mutation.
Derselbe Aufruf, ein anderer Cursor
In einer serverseitig gerenderten Seite mountest du die Ansicht wie gewohnt unter dem Cursor der Seite. Für Ausgabe ohne Seite nimmt renderToHtml ein Document, keine Sitzung: keine Auswahl, keine Historie, kein Fokus.
Die Live-Editoren auf diesen Seiten sind genau so gebaut: mit der Seite gerendert und angebunden, nachdem die Hydration das Markup übernommen hat.
Editierbar erst, wenn es sicher ist
Vor der ersten Übernahme hält die Hydration fest, was der Nutzer vielleicht schon getippt hat. Bearbeiten beginnt erst, wenn die Seite hydriert ist und keine Eingabesitzung laufen kann.
- Active
- Editierbar.
- Deferred(PageHydrating)
- Die Seite um den Editor hydriert noch.
- Deferred(InputSession)
- Eine Eingabesitzung ist offen oder könnte es sein.
- Deferred(UnimportedSource)
- Der Quelltext hat sich seit dem Rendern geändert.
- Failed
- Die lokale Übernahme ist gescheitert; es kommt nichts mehr.