【发布时间】:2012-03-08 12:47:30
【问题描述】:
我正在编写一个插入 Google 日历(或其他 iCal 支持的服务)并显示事件提醒的小型桌面应用程序。它会每隔一段时间自动重新下载 iCal 文件。如果文件校验和发生了变化,我会丢弃当前的约会缓存并重新解析日历。
问题是,这不适用于 Google 日历文件。经过进一步检查,我注意到每次我重新下载与某个日历关联的 iCal 文件时,所有事件上的 DTSTAMP: property 都会发生变化。所以标准校验和可能不是这里的方法。我正在考虑两种主要的解决方案。
- 根据原始文件计算校验和,并丢弃
DTSTAMP:行。 (脏) - 实现一个完整的日历差异算法,检测日历的哪些部分是新的、哪些已被丢弃、哪些已更改等。(昂贵)
我不知道iCal格式是否还有其他我还没有发现的怪癖,所以我不知道方法1是否能解决我的问题。有限的测试似乎表明确实如此。另一方面,就 CPU 功率而言,方法 2 的成本似乎是不必要的。
你有什么建议?
【问题讨论】: