很多朋友都知道,豆腐最近在项目中遇到了技术上的难题,或者说这个难题在现实生活中本身就是存在的。
比如当对两个html进行比较时, 如何能够正确地向用户提供 友好的比较结果。举一个很简单的例子。
<span>123</span> 和<div>123</div> 在html source 层面是完全不同的字符串,但是对于用户体验来说,这两个字符串是一致的。 再比如
<ul><li>First</li><li>Second</li></ul> 和 <li>First</li><li>Second</li> 在显示的时候是完全一致,但是html 确差了很多。 我们可以从技术上向用户解释说, 他们本来就是不一样的,但是这样会吓跑我们的用户。
我想了很多办法来解决这个问题,解决方案就是建立一个可配置的配置表, 通过反射建立起一套规则,当出现比较结果和human 体验不一致的时候,就利用这套逻辑进行修正,但是这样的问题就是 头疼医疼 脚疼医脚 ,总是滞后于用户发现问题,就和IE 的补丁一样,虽然可以解决问题,但是永远都是再发现问题以后才去解决。
终于有一点,痛下决心,在根子上解决这个问题。 解决这个问题的关键,就是在相同的用户体验的前提下,尽量的将数据源修正为同等比较, 这样的唯一解决方案就是XHTML 了,下一步的问题是,如何进行修正,这个可不是一个小问题。 直道有一天一个很偶然的机会,发现了W3C组织提供的Open Source 的项目
Html Tidy,
这个Html Tidy 可以帮助我们 对html 字符串进行修正,并做标准化的处理。详细的关于Html Tidy 的信息,大家可以去这个站点, 我也会在后续的Post 中做详细的介绍。
如果大家也有兴趣的话,我们可以一起来研究和探讨。 谢谢。