使用模板生成响应时,先计算模板,然后发送结果。
是否可以在构造响应时流式传输模板的结果?
发布于 2012-06-07 05:58:34
流式传输的工作原理是逐部分发送结果,因此您的模板应该只构建响应的一部分。
我假设您有一个Enumerator[Part],其中Part是为结果部分建模的类型。例如,您可以从Web服务调用或数据库查询生成此枚举器。
然后,您需要将这些响应部分转换为html部分。您可以使用Enumeratee[Part, Html]来做到这一点。
最后,使用HTTP结果的feed方法,并将枚举器和被枚举器一起传递给它。
下面是一个(未经测试的)示例,说明了上面的解释:
def stream = Action { implicit request =>
val stream: Enumerator[Part] = …
val toHtml = Enumeratee.map[Part] { part =>
views.html.part(part)
}
Ok.feed(stream &> toHtml)
}https://stackoverflow.com/questions/10915796
复制相似问题