gpt4 book ai didi

node.js - 灰尘 : should async calls ever be made from a template helper?

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:38 26 4
gpt4 key购买 nike

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

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

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

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

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

缺点:

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

优点:

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

你有什么想法?谢谢!

最佳答案

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

如果您考虑在浏览器中使用dust模板(因此从客户端调用ajax),那么从架构角度来看,我认为这两种方式都是合理的。但在做出决定之前,我会问自己一些有关用户体验的问题:

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

  2. 数据显示在页面的什么位置?你首先需要它吗页面的一部分?或者用户应该滚动查看其他数据集?如果数据没有立即消耗,我会决定留下它给客户。

关于node.js - 灰尘 : should async calls ever be made from a template helper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32347386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com