Ich habe eine <div contenteditable="true" />
, dass der Benutzer schreiben kann, ist ziemlich unbegrenzt in der Länge.
Die Daten im Div werden bei Änderung mit einem Zeitstempel in einer MySQL-Datenbank gespeichert.Speichern Sie Änderungen in contenteditable mit Zeitstempel
Jetzt ist mein Ziel, eine kleine Notiz auf der linken Seite zu haben, die dem Benutzer sagt, wann jeder Teil des Dokuments erstellt wurde (Auflösung sollte in Tagen sein).
Nun ist die Frage: Wie kann ich die Informationen (welcher Teil hat sich wann geändert) am besten speichern?
als ich die folgenden Optionen so weit, die beide scheinen verbesserungsfähig:
- Jedes Mal, wenn der Benutzer die Seite am Ende des Dokuments besucht füge ich einen Flag (zB eine emtpy Spannweite mit einer Klasse und einem Datenattribut, das den Beginn der Bearbeitung speichert). Dieses Flag wird dann in der Datenbank gespeichert, wenn das Sicherungsskript aufgerufen wird. Diese Option würde es sehr einfach machen, das Datum auf der Seite zu zeigen - ich würde sie einfach auf die gleiche Höhe wie die leere Spanne setzen und die Spanne sagt mir das Datum. Nachteile sind: Der Benutzer könnte versehentlich den Zeitstempelbereich löschen und wenn der Benutzer das Fenster für eine lange Zeit nicht schließt, werden keine neuen Zeitspannespannen eingefügt (dies könnte wahrscheinlich vermieden werden, indem neue Zeitstempelspannen alle X Minuten eingefügt werden, so dass der Löschteil ist) relevanter)
- Der Versuch, jedes Mal, wenn die Daten an das Sicherungsskript übergeben werden, einen Vergleich der Zeichenketten durchzuführen und nur die Diff mit einem Zeitstempel zu speichern. Dann, wenn die Seite geladen ist, fügen Sie alle Teile in der richtigen Reihenfolge zusammen und legen Sie in Javascript die Datumsangaben an die richtige Stelle. Das hört sich für mich nach viel Overhead an, aber wenn ältere Teile geändert werden, können zwei Teile zu einem werden usw. Alles in allem klingt diese Option sehr kompliziert.
Alle Eingaben/Ideen/Vorschläge sehr geschätzt!
Ist die Art des Inhalts strukturiert oder unstrukturiert? Wenn es unstrukturiert ist (wie eine Codebasis in der Zeit), würde ich vorschlagen, die von armel bereitgestellte Lösung zu verwenden. Wenn es strukturiert ist oder strukturiert werden kann, dann die Lösung (en) von MrFishie und mir. –
Ist die Art des Inhalts strukturiert oder unstrukturiert? Wenn es unstrukturiert ist (wie eine Codebasis in der Zeit), würde ich vorschlagen, die von armel bereitgestellte Merging-Lösung zu verwenden. Wenn es strukturiert ist oder strukturiert werden kann, dann die Lösung (en) von MrFishie und mir. Ein unstrukturiertes Dokument ist komplizierter zu handhaben, da es oft schwierig ist, die richtige Hierarchie von Änderungen festzulegen. (Dies war bei der Replikation über verschiedene Server in Lotus Notes immer ein sehr problematisches Problem.) Dies ist die Version des Kommentars, die Sie berücksichtigen sollten. –
@LoekBergman: Die Eingabe ist benutzergeneriert und folgt keiner bestimmten Struktur. – Horen