【发布时间】:2010-02-24 01:34:54
【问题描述】:
我需要使用 ruby/rails 向用户网页实时显示日志文件。用户应该能够在不刷新页面的情况下看到日志文件。
日志文件可能并不总是在运行 rails 的同一台机器上。
是否可以在 ruby/rails 中使用?
【问题讨论】:
标签: ruby-on-rails ruby
我需要使用 ruby/rails 向用户网页实时显示日志文件。用户应该能够在不刷新页面的情况下看到日志文件。
日志文件可能并不总是在运行 rails 的同一台机器上。
是否可以在 ruby/rails 中使用?
【问题讨论】:
标签: ruby-on-rails ruby
您可以通过自动刷新页面来做到这一点,当 JavaScript 可用时使用 AJAX(这样可以避免页面闪烁和页面重新加载导致的额外带宽使用)。
另一种方法(实际上是增量更新页面)包含两个独立的问题:(1)随着文件的增长读取文件,以及(2)在不关闭连接的情况下发送答案。我已经看到一些解决方案这样做(虽然不是在 Rails 中),但不幸的是它们往往不是很可靠(浏览器和系统的其他部分将超时)并且当页面加载永远不会完成时用户会感到困惑。
【讨论】:
Ruby 和 Rails 可以读取文件,但问题是从不同的机器访问。日志文件是否在同一个网络上?
【讨论】:
您所要求的不一定是特定于 Rails 的。这更多是技术问题,IMO。
因为经典的网络模型是客户端/服务器,并且异步推送数据不是标准的,您需要弄清楚如何做到这一点:
1) 通过在客户端上轮询来伪造它。
2) 使用不同的技术。对于 Rails,您可能需要研究诸如 comet 或 websockets 之类的东西。
【讨论】: