1
5
您可以通过以下两种方式使用哈希:
如果有问题的提要为其项提供了guid,则可以通过存储guid<>哈希对来优化此过程。这将使比较更快,因为您只会将项目与已知的以前版本进行比较,而不是与所有以前的项目进行比较。 您仍然需要一些过期/清除机制来将存储的哈希数量保持在界限内,但是考虑到您只存储相对较短的字符串(取决于所选的哈希算法),您应该能够在出现性能问题之前保留相当多的积压工作。 |
2
3
HTTP Conditional GET 可能和你想要的一样接近。 |
3
1
由于RSS的多样性,对于您提出的问题没有简单的解决方案。 主要问题是如何确定RSS项目的唯一性。它可以是guid、发布时间或内容本身,但可能很难自动检测到。 一旦你知道了唯一性标准,你就可以保存所有“旧”项目,并将它们与你收到的最新项目进行比较。 HTTP缓存控制和Expires头可以用作支持该功能的站点的优化,但不幸的是,有些没有。 |
4
1
@Henrik的解决方案是正确的,但是向您提供哈希数据的示例可能是最简单的:
此外,如果要快速检查以确定XML文件中的任何数据是否发生了任何更改,可以将XML作为字符串散列。您应该存储这个值,并在每次运行cronjob时检查它,以查看该值是否已更改(指示XML文件中的某些数据已更改)。
|
5
0
你的客户会一直要求你的饲料数据,所以你不一定要控制 什么时候? 他们问。我认为大多数提要阅读器不遵守HTTP缓存控制/过期头,因此您不能依赖于使用HTTP规范和利用HTTP缓存。 我认为您最好的选择是缓存上一个响应并从缓存发送所有后续请求—在进行更改时适当地更新缓存。实际上,这意味着,如果您只是从memcache或文件系统中提取数据,那么响应每个客户机及其过时数据的成本几乎接近于0。 |
JobProcessTask · 如何读取此xpath表达式? 2 年前 |
MBF · PHP导入/解析XML文件内容保存到数据库 2 年前 |
TenkMan · SQL Server XML嵌套值查询表单990 2 年前 |
Mohan.Murali.Peddini · XSLT模板循环记录 2 年前 |