Javascript HTML差异比较

Javascript HTML差异比较,javascript,html,diff,Javascript,Html,Diff,我正在寻找比较n个HTML块并显示随时间呈现的更改的最佳方法,基本上是回忆CMS中页面的版本并为用户列出更改 虽然和很有用,但它们并不能真正满足这一需求 我不是在寻找一个具有漂亮的显示、直观地指示更改的解决方案。我只需要数据——在理想的情况下,我会按时间顺序传递一个包含n个html块的数组或对象,然后返回一个对象,该对象可以是版本到版本,也可以是累积更改 我意识到这是一个“你看得越多,它看起来就越难”的问题。显然,对“内容”的任何更改都必须进行识别,但相关的标记更难识别——您可以进行巨大的更改,

我正在寻找比较n个HTML块并显示随时间呈现的更改的最佳方法,基本上是回忆CMS中页面的版本并为用户列出更改

虽然和很有用,但它们并不能真正满足这一需求

我不是在寻找一个具有漂亮的显示、直观地指示更改的解决方案。我只需要数据——在理想的情况下,我会按时间顺序传递一个包含n个html块的数组或对象,然后返回一个对象,该对象可以是版本到版本,也可以是累积更改

我意识到这是一个“你看得越多,它看起来就越难”的问题。显然,对“内容”的任何更改都必须进行识别,但相关的标记更难识别——您可以进行巨大的更改,而这些更改对呈现的内容没有影响,也可以进行微小的更改,从而显著改变页面


老实说,我甚至不确定我要找的东西是否实用。但是在我放弃这条路径之前,我想我会问大家。

你可以考虑渲染不同版本的方法,把结果保存成图像,然后以编程方式比较图像。可能有一些软件包可以进行图像差异处理。但是,即使只是在渲染版本的两个图像之间淡入淡出,也可能会有所启发。您是坚持比较渲染版本,还是乐于比较HTML?如果坚持比较渲染版本,那么如何将它们作为具有结构的对象(以便可以进行有意义的结构比较),而不仅仅是渲染像素?要实现后者,您必须进入每个特定浏览器的dom渲染管道。否则,您需要完全模拟HTML的渲染,并在渲染像素之前截取它,这是一个很高的要求。这当然是一个很高的要求-我不确定这是否可能。最终用户的视觉图像比较是行不通的——页面可能有2、5甚至10个版本。想象一下Word的track changes功能,其中随着时间的推移对文档的更改通过一些简单的元数据突出显示。这更接近我想要的。我自己开始尝试,但一切都变得太困难了。如果SO社区中的任何人都看到CMS版本控制系统的类似内容,那么在这里发布可能足够好,只显示不同系统的缩略图截图。我怀疑是否有人期望更多。