0

我们正在http://reader.pykih.com开发免费的开源 Google Reader 替代品,代码位于http://github.com/pykih/reader

当用户注册或添加 RSS 提要时,我们将提要 url 添加到数据库中,然后要求 DelayedJob 从该 RSS url 获取文章。这通常需要几秒钟到几分钟或两分钟,具体取决于 DelayedJob 队列。许多用户抱怨 RSS 提要根本没有被获取,而实际上它正在被获取。用户所要做的就是刷新他自己的页面。我们在那里写了一条消息,但用户在抱怨。

谁能指出我们的方向 - 设计 Facebook 或 Google 风格的“加载”(黄色图标)功能的最佳方式是什么,一旦加载,它会自动将条目添加到屏幕而不刷新页面。

先感谢您

4

1 回答 1

0

如果我理解正确,您基本上希望在页面仍处于打开状态时实时更新用户的视图。(无论如何,这就是 Facebook 和大多数 Google 产品现在所做的)。这种技术通常称为服务器推送——信息从服务器推送到客户端,而不是让客户端从服务器请求(拉取)信息。

实现服务器推送有多种方式。

  • 您可以每十秒左右使用 AJAX 来“重新加载”页面。这很容易实现,但根本不是实时的,并且可能会导致服务器上不必要的负载。它适用于所有浏览器。
  • 您可以使用 EventSource,这是一种由 Firefox、Chrome、Safari、Opera 和其他(但不包括 IE)支持的相对较新的格式。这是一种非常简单的格式,易于实现。EventSource 仅是单向通信:它将事件从服务器发送到客户端,而不是反向发送。
  • 您可以使用 WebSockets,可能使用 EventMachine 和WebSocket library之类的库。WebSockets 允许快速的双向通信,但它比 EventSource 更复杂,并且只有最新的 IE 版本支持它
  • 您可以使用像Pusher这样的商业服务。Pusher 易于集成且速度快,但不是免费的。不过,浏览器兼容性很好。

这些选项的主要区别在于客户端支持的数量(您需要 IE 支持吗?)和您获得的 Ruby 集成的数量。

于 2013-06-10T13:55:27.473 回答