php – 使用时间戳保存可变内容的更改
我有一个< div contenteditable =“true”/>用户可以写入的长度几乎是无限的.
数据库中的数据会随 MySQL数据库中的时间戳一起保存. 现在我的目标是在左边有一个小笔记,告诉用户文档的每个部分都已经创建(分辨率应该是几天). 现在的问题是:如何保存最好的信息(哪些部分已经改变)? 到目前为止,我考虑了以下选项: >每次用户访问文档末尾的站点时,我都会插入一个标志(例如一个带有类的emtpy范围和存储开始编辑的数据属性).当调用保存脚本时,此标志将保存到数据库中.这个选项可以很容易地显示日期 – 我只是把它们放在与空白跨度相同的高度上,而跨度告诉我日期.缺点是:用户可能会意外删除时间戳范围,如果用户长时间没有关闭窗口,则不会插入新的时间跨度(这可能会通过每X分钟插入新的时间戳跨度来避免,因此删除部分是更相关) 任何投入/想法/建议高度赞赏!
您要实现的是源代码控制世界中的“annotate”或“blame”功能(尽管您只希望更新日期,而不是日期作者或简单的作者).
要做到这一点,你需要一种方法来使差异(php-diff可以做这个工作),并获得文本的版本. >存储最新版本,只保留三角洲(如统一差异,我的偏好) 一旦你有你当前的版本和三角洲列表(你可以肯定缩短列表,如果超过说几十个delta,让用户询问更多,如果真的很重要).你一起组成三角洲,这是注释阶段发生的地方,因为你可以从这个部分记住哪一个版本来自每一行.组合实际上很简单(从最新开始,补丁中添加的所有行都是从最新的,另一个需要解释,所以再次启动下一个补丁,直到你到达你想要治疗的最古老的补丁剩下的那一行是从那个版本或最早的,所以一些标志说’在或之前’可以使用). Google has a diff library for Javascript可以在用户机上做所有的辛勤工作.他们也有这个库中的补丁部分.我没有找到一个注释/怪物库. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |