Javascript 使用RSS源查看网站中是否有更改

Javascript 使用RSS源查看网站中是否有更改,javascript,rss,Javascript,Rss,我需要找出是否有什么东西已经改变了一个网站使用RSS提要。我的解决方案是不断下载整个rss文件,获取entries.length并将其与最近已知的entries.length进行比较。我发现这是一个非常不雅观的解决方案。有人能提出不同的方法吗 详情: •我的应用程序是一个使用javascript的html文件。它应该足够小,可以用作桌面小工具或浏览器扩展。 •目前,它每30秒下载一次rss文件,只是为了获得长度。 •它可以通过Rss源从任何网站下载 欢迎评论和建议,提前感谢~^^可以使用HTTP

我需要找出是否有什么东西已经改变了一个网站使用RSS提要。我的解决方案是不断下载整个rss文件,获取entries.length并将其与最近已知的entries.length进行比较。我发现这是一个非常不雅观的解决方案。有人能提出不同的方法吗

详情:

•我的应用程序是一个使用javascript的html文件。它应该足够小,可以用作桌面小工具或浏览器扩展。
•目前,它每30秒下载一次rss文件,只是为了获得长度。
•它可以通过Rss源从任何网站下载


欢迎评论和建议,提前感谢~^^

可以使用HTTP头来确定资源是否已更改。了解如何使用以下标题提高应用程序的效率

HTTP请求头
  • 如果自
  • 如果不匹配
HTTP响应头
  • 上次修改的
  • ETag

基本策略是存储第一个请求返回的上述响应头,然后在将来的请求中发送存储在HTTP请求头中的值。如果HTTP资源没有被更改,您将得到
HTTP304-notmodified
响应,并且该资源甚至不会被下载。因此,这将导致对更新进行非常轻量级的检查。如果资源已更改,您将返回一个
HTTP 200 OK
响应,资源将以通常的方式下载。

许多RSS提要使用
元素,它是
的子元素,以指示上次更新的时间。还有一个
元素,它是
的子元素,用于相同的目的。如果您计划阅读ATOM提要,那么它们具有
元素。

您应该跟踪GUID/ArticleId,以查看您以前是否看过文章


您还应该查看您的源代码是否支持。它将允许您检查是否有任何更改,而无需下载整个文件。您可以快速检查以查看源代码是否支持条件GET。(我希望每个人都这样做。)

仅仅检查条目数量是不够的,因为有些提要只显示一定数量的条目。示例:一个提要可能显示10个条目,一旦添加了第11个条目,则删除了第1个条目,因此总数仍然是10.o_o;废话。没想到。。。后续问题:是否有可能创建一个应用程序,使用RSS源检查网站中是否发生了变化?@justin:如果动态内容提供商费心去实现它,那么是的;否则不会。这是HTTP级别的功能,因此它不专门与静态或动态内容绑定。@贾斯汀:我刚刚检查了StackOverflow博客、Joel Spolsky博客(joelonsoftware)和Jeff Atwood博客(Codinghoror)的RSS源,如果没有匹配的头,这三个都实现了
ETag/If
头。此外,joelonsoftware和Codinghoror实现了
上次修改/If-Modified-Since
标题。