Sad*_*que 3 frontend json backend web-frontend
我正在开发网络应用程序,从后端获取 JSON 后会生成布局。但是从后端接收到的对象非常复杂,需要循环多次才能获得布局。
将数据发布到后端时也会发生同样的情况。
我的感觉是,如果我们按照前端布局生成 JSON 对象来发布数据,即使后端的对象结构发生变化,布局生成也不需要那些额外的循环。
那么json对象到底是后端给的还是应该根据前端的呢?
例如后端正在给出
[
{
"keyid": "value",
"attr1": "value1",
"attr2": "value2"
},
{
"keyid": "value",
"attr3": "value3",
"attr4": "value4"
}
]
Run Code Online (Sandbox Code Playgroud)
但前端很容易接收和发送以下格式的对象:
{
"keyid": "value",
"attr": {
"attr1": "value1",
"attr2": "value2",
"attr3": "value3",
"attr4": "value4"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
好问题,尽管它可能会被关闭为“太宽泛”。
一般来说,后端负责持久化数据,执行业务逻辑,准备和接受进出前端的数据包,理想的是前端可以限制自己的角色,这主要是显示数据、管理导航和处理用户交互,并进行完成这些事情所需的任何预处理和操作。
如果后端“做得不够”,那么你会看到前端需要发出太多的数据请求来获取它需要的数据,执行相当于“连接”的操作来组合和关联数据,并执行业务逻辑。这会减慢前端速度并使其变得更加复杂,并将业务逻辑分散到后端和前端。
另一方面,如果后端“做得太多”,计算并提供所有内容,甚至只需要填充到一些 HTML 模板中,那么结果就是它最终过于依赖于特定的前端 -最终设计,意味着改变需要对双方进行太多的修改。
因此,人们试图采取中庸之道。后端应该检索所有必要的数据,关联和操作它,并执行业务逻辑。它提供了一组相对抽象但充实的数据对象,前端可以为 UI 准备和操作这些数据对象。对于如何划清界限,并没有硬性规定。
例如,分页可以被视为“UI”问题,并且可以由大多数客户端框架轻松处理,但如果有数百或数千个对象,则性能考虑可能会要求在服务器上处理此问题。排序也一样。
考虑购物车中商品总价的计算。前端可以轻松地执行这种业务逻辑,但可能存在批量折扣或货币兑换等规则,这些规则最好在后端处理。当然,如果要在服务器上进行计算,则每次将商品添加到购物车时都需要再次往返服务器以重新计算总数。往返相对便宜,但在某些情况下,性能问题可能会导致人们想要在客户端上执行此操作以避免往返。
归根结底,这是一组设计选择。当然,经常出现的情况是后端 API 被“冻结”,而前端人员只能使用他们所获得的内容。
归档时间: |
|
查看次数: |
4054 次 |
最近记录: |