0

对于关于把手的所有菜鸟问题,我提前道歉。我来自 Rails 背景,虽然 Handlebars 看起来很酷,但我无法看到它比在服务器上编译视图的优势。

所以这里有问题。

目前,我们的应用程序在我们的节点服务器上编译 Handlebars JS 模板,并将完全渲染的页面传递回客户端。我被要求研究预编译模板以在客户端上呈现。

首先,我对如何构建它有点困惑。初始下载到客户端是否就像一个布局模板(只是样板 html、css 和 js),然后客户端将使用传递给它的任何 json 数据,以及位于 Handlebars.templates 中的预编译模板来构建意见的细节?

如果是这样,用它可能需要的每个可能的模板加载客户端真的更有效,而不是只在它需要的时候提供它需要的东西吗?

4

3 回答 3

2

首先,我对如何构建它有点困惑。初始下载到客户端是否就像一个布局模板(只是样板 html、css 和 js),然后客户端将使用传递给它的任何 json 数据,以及位于 Handlebars.templates 中的预编译模板来构建意见的细节?

如果您做事稳健,那么您将照常提供服务器呈现的页面。

这将包括<script>其中嵌入了模板的一个。它们仅在通常从服务器加载第二页时才开始播放。

如果是这样,用它可能需要的每个可能的模板加载客户端真的更有效,而不是在它需要的时候只提供它需要的东西吗?

您在初始加载时需要支付额外费用。如果您的数据是合适的,那么从长远来看,这是值得的,因为您无需在每次访问基于相同模板的新页面时重新获取整个 HTML 文档(在某些情况下,所有更改都可以计算客户端一方面,您可以完全避免一些 HTTP 请求)。

于 2014-07-09T18:39:13.550 回答
0

初始加载速度并不快。

但是,如果您正在做一个“单页”应用程序,那么初始加载后的每次更改都会更快。它会给人一种更有活力和快速的感觉。

但是,如果您使用表单进行 Rails,并且如果您不做类似应用程序的“单页”,那么就没有理由渲染客户端。

于 2014-07-09T18:36:02.423 回答
0

这实际上取决于您的应用程序的特定需求和限制。客户端上模板的优点是减少了 http 请求并提高了性能。缺点是增加膨胀。因此,根据性能瓶颈所在的位置,与在初始有效负载中添加膨胀相比,增加 http 请求可能更好或更糟。当然,您可以延迟加载模板包等。等等。

至于架构它,是的,您的模板正在等待客户端。当您从服务器请求 JSON 时,您将数据插入模板并呈现在页面上。

于 2014-07-09T18:36:57.933 回答