Ho un <div contenteditable="true" />
che l'utente può scrivere in modo abbastanza illimitato.
I dati nel div sono salvati sul cambiamento con un timestamp in un database MySQL.Salvare le modifiche in contenteditable con timestamp
Ora il mio obiettivo è di avere una piccola nota a sinistra che indica all'utente quando ogni parte del documento è stata creata (la risoluzione dovrebbe essere in giorni).
Ora, la domanda è: Come posso salvare le informazioni (quale parte è cambiata quando) migliore?
ho considerato le seguenti opzioni finora che entrambi sembrano migliorabile:
- Ogni volta che l'utente visita il sito alla fine del documento inserisco una bandiera (ad esempio un arco emtpy con una classe e una attributo dati che memorizza l'inizio della modifica). Questo flag viene quindi salvato nel database quando viene richiamato lo script di salvataggio. Questa opzione renderebbe molto facile mostrare la data sul lato - li metterei appena sulla stessa altezza della campata vuota e la span mi dice la data. I lati negativi sono: l'utente potrebbe cancellare accidentalmente l'intervallo di data e ora e se l'utente non chiude la finestra per un lungo periodo non vengono inseriti nuovi intervalli temporali (questo potrebbe probabilmente essere evitato inserendo un nuovo timestamp che si estende ogni X minuti, quindi l'eliminazione della parte è più rilevante)
- Provare a eseguire una comparazione delle stringhe ogni volta che i dati vengono passati allo script di salvataggio e salvare solo il diff con un timestamp. Poi, quando la pagina è caricata, metti tutte le parti insieme nel giusto ordine e in Javascript metti le note della data nel posto giusto. Questo suona come un sacco di spese generali per me anche se quando le parti più vecchie vengono cambiate, due parti potrebbero diventarne una, ecc. Tutto sommato, queste opzioni sembrano molto complicate.
Qualsiasi input/idee/suggerimenti altamente apprezzati!
Il tipo di contenuto è strutturato o non strutturato? Se non è strutturato (come una base di codice in tempo), suggerirei di utilizzare la soluzione fornita da armel. Se è strutturato o può essere strutturato, allora la soluzione (s) fornita da MrFishie e me. –
Il tipo di contenuto è strutturato o non strutturato? Se non è strutturato (come una base di codice in tempo), suggerirei di utilizzare la soluzione di fusione fornita da armel. Se è strutturato o può essere strutturato, allora la soluzione (s) fornita da MrFishie e me. Un documento non strutturato è più complesso da gestire, perché è abbastanza spesso difficile stabilire la corretta gerarchia dei cambiamenti. (Questo è sempre stato un problema molto problematico con la replica su diversi server in Lotus Notes.) Questa è la versione del commento che vorrei prendere in considerazione. –
@LoekBergman: l'input è generato dall'utente e non segue alcuna struttura specifica. – Horen