【问题标题】:How to reduce latency while retrieving RSS feeds using .NET?如何在使用 .NET 检索 RSS 提要时减少延迟?
【发布时间】:2010-12-09 20:02:02
【问题描述】:

我要求只使用最新的两个 RSS 提要(使用 .NET)以减少读取 RSS 的延迟。我发现了很多使用 RSS 的示例。但是,我没有发现任何限制正在阅读的提要。而且,这不适用于 Windows 窗体应用程序。

【问题讨论】:

  • 您想减少直接从源读取提要的延迟,还是减少遍历提要中的项目所需的时间?由于 RSS 是 XML 格式的,恕我直言,您必须先从其源下载文件,然后才能将其作为 XML 文档打开并选择前两项。
  • 您不必下载整个文件。阅读下文。
  • 您根本不需要下载文件。阅读下文(呃)。
  • 您不必使用 RSS。阅读下文(EST)。 (对不起,无法抗拒);)

标签: c# .net vb.net


【解决方案1】:

打开到 RSS URL 的 http 连接并手动加载流,一次一个条目地读取它,然后,当你有足够的时候,终止连接。对于整个 XML,您不必一路走来。

当然,这里需要一些简单的 XML 解析。

【讨论】:

  • 我并不是在暗示要阅读整个提要。当他有足够的数据时,我希望他断开连接。
  • 是的,我知道,但这甚至没有必要。只需要 HTTP-Last-Modified。
  • "...这里需要一些简单的 XML 解析。"但是他不能在流上创建一个XmlReader 吗?他可以随时终止连接。阅读器不需要将整个内容加载到内存中。
  • @Jim - 好技巧,好主意,猜猜它值得研究 - 不过,所有的缓冲和东西?
  • @Daniel:我不知道会涉及多少缓冲。无论如何,这可能是一个有争议的问题,因为与 Web 服务器建立连接所花费的时间可能与下载文档的时间一样长(或者可能更长)。
【解决方案2】:

RSS 提要实际上只是网页。您可以检查所有提要 URL 上的 HTTP Last-Modified 标头,然后下载最近更新的标头。但是请注意,您可能会以这种方式使不经常更新的提要饿死,尤其是当您的集合中有两个经常更新的提要时。

这里有一篇关于此事的文章:HTTP Conditional Get for RSS Hackers

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-25
    • 2012-08-10
    • 2020-08-14
    • 2015-04-04
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多