美文网首页
不妨换一下思路

不妨换一下思路

作者: 移动开发_ziank | 来源:发表于2018-12-07 14:35 被阅读9次

今天在处理文件是否修改的问题的时候,走了不少弯路,记录一下,留着提醒自己,也提醒一下别人。

内容判断

首先,由于编辑器是第三方的,所以我只能够想到利用文件的内容是否发生变化来进行判断,这里也就出现了第一个版本,对内容的判断。

XML节点判断

后来出现了问题,那就是有些时候,内容中会多出一些空格或者空行来,由于编辑器的内容格式是xml,所以多了空行之类的对于编辑器没有任何问题,可是我的判断却会出现错误;这里我也就添加了xml的解析代码,然后对于xml的每一个节点进行判断。

Bug出现

大部分的文件都没有问题,可是,出现了一种较为少见的bug,就是部分文件还是会出现没有修改,却被判断为修改了的情况。由于很难复现,一开始没有注意,直到后来发现一篇文章必现该问题,就进行了调试跟踪。发现编辑器生成的xml文件中有一级节点居然是无序的,也就是可以是任何顺序,都不影响显示,可是判断时却是按照有序进行的判断,也就导致判断错误。

思路过程

由于因为这些节点的名字都是相同的,而且处在同一级,如果利用节点判断,就需要个数平方的次数来判断了,对性能有较大的影响。
然后我想到,先把节点进行排序,然后再进行比较,可是发现由于名字相同,属性的顺序不确定,很难准确的进行排序。

解决方法

当时找同事询问有没有什么好的办法,大家也都没有想到。然后有人问了一句:“你为什么要进行xml的解析和排序啊?”
我突然想到:“对啊,我为什么要解析呢?我的目的是判断内容有没有被修改过,我已经监控屏幕的输入输出事件,只需要根据这个添加一个状态就OK了啊。”
其实能想到也是因为之前的一个需求中我已经添加了对屏幕事件的监控,却完全忽略了这个问题也可以这么解决,至此,问题也就不存在了,因为不使用xml解析,自然就不需要考虑太多的问题了。

结论

有时候,必须要太钻牛角尖,也许换一个角度,问题就很变得容易解决了。

相关文章

  • 不妨换一下思路

    今天在处理文件是否修改的问题的时候,走了不少弯路,记录一下,留着提醒自己,也提醒一下别人。 内容判断 首先,由于编...

  • 换一下思路

    2020年4月6日 星期一 阴 亲子日记(825)王婷爸爸原创 01 由于疫情的原因,大人和孩子都要在家上网课。虽...

  • 换一下思路

    01 上网课的时候,虽然家里有两台电脑和三部手机,仍感觉不够用。因为网络信号时强时弱,我们只好电脑和手机轮流使用。...

  • 不妨变通一下思路

    每人有自己的活法,在自认为对的路上摸爬滚打。当你走不通了,当你走累了,感觉没有兴致了,不妨换一种方式,换个方向,换...

  • 换思路

    今天表扬一下自己,姐让送爹去她家,我本不同意,她情绪升级,电话放了又打。我也急了,换个思路吧。去她家也是好意,家里...

  • 换思路

    遇到特别难的难题,解决选址难题。 已经选择了很多个方案,待执行。 其中最难的为躬身入局,当咱们进入局中,就会发现,...

  • 游曳的街边怨魂,凝住此生最僵硬的凶狠,孑然一身

    不妨摘下面具,真心和善换温情。

  • 换种思路

    昨晚去寄包裹的时候,因为没有带身份证,被无情地告知不能寄件! 我奇怪地问快递老板为什么不可以?因为到目前为止,寄件...

  • 换种思路

    今天晚上第一节课 本来是安排纠错 但是想 做个小测试 题目是上次月考和上周小测试出错最多的 题 我又选了一些不...

  • 换种思路

    快到飞往巴黎的航班的登机口时,我们从一路飞奔变为一溜小跑。飞机尚未起飞,但登机通道已经关闭。登机口的工作人员正在平...

网友评论

      本文标题:不妨换一下思路

      本文链接:https://www.haomeiwen.com/subject/boethqtx.html