【问题标题】:Can you stream HTML with Slim in a Sinatra app?您可以在 Sinatra 应用程序中使用 Slim 流式传输 HTML 吗?
【发布时间】:2014-09-05 01:12:35
【问题描述】:

我有一个包含命令行应用程序的 Sinatra 应用程序。它没有可能的用户,所以性能不是问题。

我正在使用 Sinatra 的流式处理 API 允许我在运行命令时流式传输 HTML。这意味着用户可以在命令运行时看到进度。

post "/reorder" do
  @project = params["project"]
  @id_or_range = params["id_or_range"]
  @output_log = "[OUTPUT]"

  before, after =  slim(:index).split(@output_log)

  stream do |out|
    out << before
    run(@project, @id_or_range, StreamOutput.new(out))
    out << after
  end
end

https://gist.github.com/NigelThorne/04775270abd46b78e262

目前我正在渲染模板(就好像我拥有所有数据一样),然后将模板文本拆分到应该插入数据的位置。然后我渲染出模板的开头,然后在我收到数据时渲染数据(在流上),然后是模板的结尾。

Slim 应该支持流媒体...

我想写。

post "/reorder" do
  ...
  stream do |out|
    out << slim(:index)
  end
end

或更好

post "/reorder" do
  ...
  slim(:index, stream: true)
end

如何在渲染时变得苗条以屈服于数据流,从而一次性流出模板?

【问题讨论】:

    标签: ruby streaming sinatra slim-lang


    【解决方案1】:

    是的,如果您覆盖 Sinatra 中的 slim 助手,您可以。见:

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多