![]() |
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。 |
|
J_Cus504 · 在单匹配语句中使用身份变换和多谓词来沉默节点 4 月前 |
![]() |
surge3333 · 使用PowerShell构建XML 4 月前 |
|
Sandeep · XSLT代码,用于根据条件提取元素值 5 月前 |
|
Reto · XSLT 3.0突发流-如何存储/获取另一个分支的值 6 月前 |
![]() |
Ian Kemp · 如何从SelectXml调用本机XPath函数? 6 月前 |