dustjs:是否应该从模板帮助程序进行异步调用?

时间:2015-09-02 07:46:52

标签: node.js express dust.js kraken.js

寻找关于从dust.js模板帮助者发出异步请求的一些想法和反馈:

Dust.js可以从模板帮助程序发出异步请求,但实际上使用它们是个好主意吗?考虑这种情况...

特定页面需要呈现几个api请求。在页面的路径控制器中,单个异步api请求获取页面的大部分数据,并将数据传递给要呈现的模板。在模板中有几个可重复使用且独立的灰尘助手(可以放在任何页面上),这些助手可以自己创建异步请求以显示其组件。

在这种情况下,所有的粉尘助手必须等到控制器发出的请求完成才能进行调用(模板渲染开始时)。

理想情况下(不包括页面上所有数据的一个端点)所有请求都应发生在路由控制器中以避免同步调用,否则请求链将是1)控制器请求2)灰尘帮助请求3 )嵌套/依赖粉尘助手请求。

缺点:

  • 通过调用n个服务来构建视图模型来路由控制器的复杂性
  • 向新页面添加显示组件需要更改控制器和模板,而不是仅添加模板助手

优点:

  • 减少/消除同步请求并提高性能
  • 更容易理解视图模型

你有什么想法?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您考虑仅在服务器端使用模板,我会将所有内容移动到控制器中。我喜欢有一个控制器"控制"视图层所需的所有数据。

如果你考虑在浏览器中使用灰尘模板(所以从cleint调用ajax),从我的角度来看,从架构视图来看,两种方式都是合理的。 但在决定之前,我会问自己一些关于用户体验的问题:

  1. 完成所有来电的时间需要多长时间 控制器?有时最好将部分数据发送给用户和 给他一些东西可以查看并稍后加载其他组件 更好的用户体验。但如果开销不超过几毫秒,我 将决定在控制器中构建我的页面上下文。

  2. 页面中显示的数据在哪里?你是否需要它? 页面的一部分?或者用户应滚动查看其他数据集? 如果数据没有立即消耗,我会决定离开它 给客户。