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

dustjs: should async calls ever be made from a template helper?

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

Dust.js 可以从模板助手发出异步请求,但使用它们真的是个好主意吗?考虑这种情况...

特定页面需要呈现多个 api 请求。在页面的路由控制器中,单个异步 api 请求获取页面的大部分数据并将数据传递给要呈现的模板。在模板中有几个可重用和独立的灰尘助手(可以放在任何页面上)它们发出自己的异步请求以显示它们的组件。

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

似乎理想情况下(不包括为页面上的所有数据设置一个端点)所有请求都应该发生在路由控制器中以避免同步调用,否则请求链将是 1) 控制器请求 2) dust helper请求 3) nested/dependent 个灰尘助手请求。

缺点:

优点:

你有什么想法?谢谢!

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

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

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

  2. 页面中显示的数据在哪里?你首先需要它吗 页面的一部分?或者用户应该滚动查看其他数据集? 如果不立即使用数据,我会决定保留它 给客户。