我有一个<div contenteditable="true" />
用户可以写的,长度几乎是无限的。
div 中的数据在 MySQL 数据库中以时间戳保存。
现在我的目标是在左侧有一个小注释,告诉用户文档的每个部分何时创建(分辨率应该以天为单位)。
现在,问题是:我怎样才能最好地保存信息(什么部分发生了变化)?
到目前为止,我考虑了以下选项,它们似乎都可以改进:
- 每次用户访问文档末尾的站点时,我都会插入一个标志(例如,带有类和存储编辑开始的数据属性的空跨度)。然后在调用保存脚本时将此标志保存到数据库中。这个选项可以很容易地在侧面显示日期 - 我只需将它们放在与空跨度相同的高度,跨度告诉我日期。缺点是:用户可能会意外删除时间戳跨度,并且如果用户长时间不关闭窗口,则不会插入新的时间跨度(这可以通过每 X 分钟插入新的时间戳跨度来避免,因此删除部分是更相关)
- 每次将数据传递到保存脚本时都尝试进行字符串差异比较,并且仅使用时间戳保存差异。然后,当页面加载时,将所有部分按正确的顺序放在一起,并在 Javascript 中将日期注释放在正确的位置。虽然这对我来说听起来像是很多开销 + 当旧部分被更改时,两个部分可能会合二为一,等等。总而言之,这些选项听起来非常复杂。
非常感谢任何输入/想法/建议!