私は<div contenteditable="true" />
というユーザーが書くことができますが、その長さには限りがありません。
divのデータは、変更時にMySQLデータベースのタイムスタンプとともに保存されます。タイムスタンプでcontenteditableの変更を保存する
今、私の目標は、文書の各部分は(解像度は日にする必要があります)が作成されたことをユーザに通知します左側に小さなノートを持っていることです。
さて、質問です:がどのように情報(どの部分を変更しました)最善を保存することができますか?
は、私がこれまでに次のオプションを検討し、両方の改善できるようでどのユーザが文書の最後にサイトを訪れた
- たびに、私はフラグ(クラスとして例えばemtpyスパンを挿入します編集の開始を格納するデータ属性)。このフラグは、保存スクリプトが呼び出されたときにデータベースに保存されます。このオプションを使用すると、サイドに日付を表示するのが非常に簡単になります。空のスパンと同じ高さに置くだけで、スパンが私に日付を知らせます。短所は以下のとおりです。ユーザーが誤ってタイムスタンプスパンを削除してしまい、ユーザーが長い時間ウィンドウを閉じないと、新しいタイムスパンが挿入されません(これは、X分ごとに新しいタイムスタンプスパンを挿入することで回避できます)関連性が高い)
- データが保存スクリプトに渡されるたびに文字列diff比較を実行しようとしていて、タイムスタンプ付きの差分のみを保存します。その後、ページがロードされると、すべての部品を正しい順序でまとめ、Javascriptで日付のメモを適切な場所に配置します。しかし、古い部品が変更されたときに2つの部品が1つになるなど、これは私のためのオーバーヘッドのように思えます。
高く評価任意の入力/アイデア/提案!
コンテンツのタイプは構造化されているか構造化されていませんか?それが(コードベースのように)構造化されていない場合は、Armelが提供するソリューションを使用することをお勧めします。それが構造化されている、または構造化されている場合は、MrFishieと私が提供したソリューションです。 –
コンテンツのタイプは構造化されているか構造化されていませんか?構造化されていない場合(コードベースのように)、armelによって提供されるマージソリューションを使用することをお勧めします。それが構造化されている、または構造化されている場合は、MrFishieと私が提供したソリューションです。構造化されていないドキュメントは、適切な階層の変更を解決することが非常に困難なため、処理が複雑です。 (これは、ロータスノーツの異なるサーバー間でのレプリケーションでは常に問題が非常に深刻でした)。これは、私が考慮したいコメントのバージョンです。 –
@LoekBergman:入力はユーザーによって生成されたもので、特定の構造には従いません。 – Horen