Ajax Facebook风格的自动加载

Ajax Facebook风格的自动加载,ajax,ruby-on-rails-3,Ajax,Ruby On Rails 3,我们正在开发一个免费、开源的Google Reader替代方案,代码位于 当用户注册或添加RSS提要时,我们将提要url添加到数据库中,然后请求DelayedJob从该RSS url获取文章。这通常需要几秒钟到一两分钟,具体取决于DelayedJob队列。许多用户抱怨说RSS提要根本没有被获取,而实际上它是被获取的。用户所要做的就是刷新自己的页面。我们在那里写了一条消息,但用户仍在抱怨 有谁能告诉我们,设计Facebook或Google风格的“加载”(黄色图标)功能的最佳方式是什么?加载后,它会

我们正在开发一个免费、开源的Google Reader替代方案,代码位于

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

有谁能告诉我们,设计Facebook或Google风格的“加载”(黄色图标)功能的最佳方式是什么?加载后,它会自动将条目添加到屏幕上,而无需刷新页面


提前感谢

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

有多种方法可以实现服务器推送

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

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

使用
Loading…
加载页面,然后使用
setTimeout()
检查是否已使用Ajax加载页面。一个Ajax返回相关的内容,在页面中替换它,然后注销回调。