如何让我的用户与Feed中的实时xml数据进行最佳交互?

时间:2011-05-31 20:40:08

标签: javascript ruby-on-rails

我正在编写一个Ruby on Rails(3)应用程序,该应用程序依赖于更新~30秒的xml提要。我应该使用某种工作者解析服务器上的xml数据吗?如果是这种情况,服务器是否能够足够快地响应客户端以保持“实时”。我当时认为可以用javascript完成,但我不确定。

编辑: 每次更新大约70kb,xml的源码能够处理大量连接。

不,此信息不会保存到数据库中。用户将具有对xml数据的只读访问权限。

是否可以在客户端使用javascript直接连接到xml服务器?

1 个答案:

答案 0 :(得分:1)

有三种现实的方法可以解决这个问题。我不是一个红宝石家伙,但这些方法都不是特定于ruby的。

  • 定期刷新页面本身以获取最新的Feed。这是做旧的方式,虽然可靠,但用户体验不是很好。
  • 通过AJAX定期获取新数据,并根据需要将其附加到网页UI元素。这可能是您在高容量方案中最好的选择,因为它不会保留与服务器的任何活动连接,也不会刷新整个页面。它也有与选项1相同的缺点,即更新不是实时的。
  • 如果您有足够少的受众群体或足够的服务器来分割负载,您可以采用comet方法。从本质上讲,每个页面请求都会在不可见的iframe中打开另一个长时间运行的请求。提供此请求的线程的输出是javascript形式的一系列小型实时更新,触发UI元素的更新。然后,您必须在服务器上开发实时解析输入的过程,并通知每个活动连接新数据。

摘要:如果您绝对需要实时数据访问和/或您的目标受众足够小以处理负载,请使用COMET类型设置。否则,请使用定期的AJAX更新。