【问题标题】:In dust.js, what is the streaming interface?在dust.js中,什么是流接口?
【发布时间】:2012-08-30 13:06:22
【问题描述】:

我一直在使用带有回调接口的dust.js,我对它非常满意。现在我想了解有关 Streaming Interface 的更多信息。

我已经阅读过文档 herehere,但这个概念让我无法理解。

我想我的问题是:

  1. 流模板是什么意思?对我来说听起来我可以用它来设置 建立一个对象,当数据被推送到时,它将通过 根据模板呈现该数据。

  2. 在什么情况下我会使用 Streaming 而不是 Callback 接口?

  3. 是否有代码示例可以帮助我学习?

谢谢!

【问题讨论】:

  • 流接口是什么意思?我想你说的是灰尘对象的流方法
  • @JAiro 是的,通过流接口,我指的是dust.stream()方法。在documentation 中,它被称为“流接口”。我不明白它应该如何工作。我不明白它和dust.render()的区别。

标签: template-engine dust.js


【解决方案1】:

在回调接口中,只有在完成整个模板的渲染后才能使用渲染的模板 - 通过提供回调 - 这通常会将渲染的模板插入到 DOM 中。

在流式接口中,您可以更好地控制渲染过程的几乎每个部分:如何将渲染的块放入输出流,何时渲染页面的某些部分等。

当您使用回调接口时,回调接口有一个“out”属性,它始终附加到该属性,它最终将作为您提供给它的回调中的第二个参数提供给您。在流接口中,当一个新处理的块可用时,它会发出一个名为“数据”的事件,并将其留给您处理数据。

所以,假设您有一个非常大的模板要渲染,您可以将模板分解成块,当完成时,将发出一个“数据”事件,并定义一个处理程序来将该块放入 DOM。换句话说,您不必等待整个渲染过程完成才能开始在页面上显示内容。

例如,如果您想一次渲染应用的多个页面,但只想向用户显示一个页面,这可能很有用 - 例如如果您使用 jquerymobile - 那么您将使用流式接口来帮助尽快将第一页提供给用户 - 同时异步呈现其余页面。希望这会有所帮助

【讨论】:

  • 谢谢,非常有帮助。除了我在问题中提到的两个之外,您还知道其他灰尘文档资源吗?
  • 不。就灰尘的文档而言,这两个几乎是它。我浏览了代码以了解更多信息。我可以在我的博客上写一篇文章。有什么特别需要解释的吗?
  • 我对生成几个块然后将它们流式传输到模板中的示例非常感兴趣。我正在考虑一大堆项目。我想流媒体可以完美地用于此,但也许我错了?
  • 我认为它是流媒体的完美用例。我没有带,但我会看看能不能稍后给你做一个。
  • @asyraf9,请提供流接口示例。这是我尝试过的jsfiddle.net/yXx5L/5。我以为数组的每次迭代都会调用“数据”事件,但事实并非如此。如何将大模板的一部分标记为块,以便在渲染后调用“数据”回调?
猜你喜欢
  • 2013-06-27
  • 2018-05-12
  • 2011-10-28
  • 2011-02-06
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 2014-06-02
相关资源
最近更新 更多