feat: Adresszeile folgt dem Dokument, Live-Sitzung ebenso (D80)
Wer bei offenem `?live=` umschaltet, behielt die alte Adresse — optisch falsch, und ein Neuladen holte das falsche Dokument zurück. Der Parameter gehört jetzt zum aktiven Dokument, für `?live=` wie für `?sourceUrl=`; `?etherpad=` wird nur noch weggeräumt. Fremde Parameter (`?server=`) bleiben wörtlich stehen, damit die URL lesbar bleibt. Dabei gefunden: Die Live-Sitzung lief weiter, während ein anderes Dokument vorn stand — `setLiveText()` schrieb fremde Änderungen in dessen Text. Die Sitzung gehört jetzt dem sichtbaren Dokument: Umschalten beendet sie, Umschalten auf ein Server-Dokument nimmt sie auf. Was noch im Debounce steckt, geht vorher raus, und `pushLive()` hält seine Sitzung fest statt anzunehmen, dass sich über ein `await` hinweg nichts ändert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
627f6feca8
commit
fdca934cf0
@@ -766,6 +766,9 @@ Seite aufgelöst; zugelassen sind nur `http`/`https`). Der Text wird als
|
||||
Tooltip); derselbe Link aktualisiert dieses Dokument, statt ein neues anzulegen.
|
||||
Ist der Parameter gesetzt, wird bei **jedem** Laden neu geholt — die URL ist die
|
||||
Quelle der Wahrheit, lokale Änderungen daran überleben ein Neuladen nicht.
|
||||
Die **Adresszeile folgt dem aktiven Dokument** (§9, `?live=`): Beim Umschalten
|
||||
auf ein anderes verschwindet der Parameter, beim Zurückschalten steht er wieder
|
||||
da.
|
||||
Scheitert das Laden (häufigster Fall: das Ziel sendet keinen
|
||||
`Access-Control-Allow-Origin`-Header, außerdem 404/Netzfehler), bleibt der
|
||||
bisherige Stand stehen und es erscheint eine **Warnung**. Siehe D23.
|
||||
@@ -796,6 +799,13 @@ anderen, ohne neu zu laden.
|
||||
jede Version in der Historie des Servers.
|
||||
- Der Abruf läuft **nur im sichtbaren Tab**; im Hintergrund ruht er und holt
|
||||
beim Zurückkommen den Rückstand.
|
||||
- **Die Adresszeile beschreibt das Dokument, das vorn ist.** Umschalten auf ein
|
||||
lokales Dokument räumt `?live=` weg, Umschalten auf ein anderes
|
||||
Server-Dokument trägt dessen Adresse ein — ein Neuladen bringt also zurück,
|
||||
was man vor sich hatte. Dasselbe gilt für `?sourceUrl=` (oben). Und die
|
||||
gemeinsame Sitzung gehört dem sichtbaren Dokument: Wer ein Server-Dokument im
|
||||
Wähler auswählt, arbeitet darin wieder gemeinsam; wer es verlässt, hört auf,
|
||||
mitzuschreiben. Siehe D80.
|
||||
|
||||
Siehe D76 (Protokoll und Begründung) und
|
||||
`backend/docs/live-editing-proposal.md`.
|
||||
|
||||
Reference in New Issue
Block a user