1
yangxiezi 2022-06-17 17:08:52 +08:00
watch 数据监听啊
|
2
devswork 2022-06-17 17:10:46 +08:00
我们这就是把所有字段一次性提交到后端。
update 不会增加数据错误风险吧,只要值正确,写到数据库还能出什么问题呢? 提交数据怕有问题,那么就做前后端校验,根据一定规则计算文本特征值,然后后端用同样算法算一遍,比对特征值,不就可以保证一致了。 如果你只想提交被修改的字段,那么前端检测值变化就行(使用监听值变化的函数),一旦变化,则值和字段名就成对提交,后端来解析提交的格式然后 update 就好了。 |
3
wu67 2022-06-17 17:23:38 +08:00
我只想说, 前端的校验只是防止一般用户输入意外的数据, 后端的校验才是真正的安全校验.
至于增量还是全量提交, 看团队规范就行, 一般都是全量吧? |
4
ningmengshule 2022-06-17 17:28:26 +08:00
只提交修改部分就行了。后端对此的处理逻辑是:先根据 ID 查出数据库中的该记录的所有字段值,然后将前端传递过来的字段值覆盖(没传的字段不进行覆盖)。然后再将该记录整个更新到数据库
|
5
libook 2022-06-17 17:30:29 +08:00
经过严格的测试和校验之后,理论上不应该出现修改部分字段全量提交却让未修改的字段的值变化,这个问题不处理妥当,局部提交也会有问题。
顶多会出现因字段太多,用户操作的时候手误碰到了不想改的字段,然后就提交写入了,这个得产品经理和 UE 去优化的。 |
6
Geekerstar 2022-06-17 17:36:06 +08:00
我们这是全部,前端好像不好判断哪些修改了
|
7
RuiQ 2022-06-17 17:38:29 +08:00
第一个问题看场景和需求吧。
全量提交和部分提交考虑到的点: 1. 如果多人修改,全量提交是最后一个人的本地数据为准,也就是说最后一个人看到的即最后落库的数据。如果部分提交,可能造成表单提交后发现有人同时修改了别的字段,看业务是否有这方面的一些考虑。 2.全部提交,如果字段非常多,而且有很复杂的校验(指后端),可能会有对性能的考虑,要评估下。 第二个问题,我前端不太专业,但是也写过,表单中的数据是否修改是可以监听到的。 |
8
nzbin 2022-06-17 17:41:29 +08:00
angular 响应式表单一把梭,每个 field 都会被标记比如是否 dirty ,是否 touched ,所以无论 1 还是 2 都很简单
|
9
kop1989smurf 2022-06-17 17:43:54 +08:00
理想情况下,在业务角度来看,全量更新和增量更新是一致的。
如果全量更新和增量更新会导致差异,那其实是要么你的业务流程梳理的不正确(比如缺乏锁单机制导致单据信息回滚,紊乱),要么是你的表单逻辑不正确(比如明明是修改界面,但是提交部分字段之后会导致次生的数据变化)。 考虑增量只是一个技术问题,而非业务问题。 |
10
wolfie 2022-06-17 17:44:48 +08:00
@Geekerstar
后端才没法判断,前端可以判断。 |
11
Jooooooooo 2022-06-17 17:45:05 +08:00
全量更新呀.
|
12
taest 2022-06-17 18:07:49 +08:00
后端可以增量
|
13
Chad0000 2022-06-17 18:24:03 +08:00 via iPhone
我的是前端做了组件,需要默认是查看模式,需要编辑哪个字段移到相应位置会出现编辑按钮,然后组件负责将改变的提交上去,同时提交编辑的字段列表。类似这样:
{ a:123 b:“abc” fields:[“a”,“b”] } 后台根据 fields 更新。 |
14
walpurgis 2022-06-17 18:33:27 +08:00 via iPhone
才 30 个,全量省事
|
15
ma836323493 2022-06-18 09:06:41 +08:00
全量更新,前端省事后端也省事,如果不全量增量,后端 model 接收 为 null 的参数时,到底是制空 还是没修改不传,让人头大
|
16
chaoFanExcellent 2022-06-18 13:45:58 +08:00
我也很疑问,到底是传修改的还是传全部的,我是想省事直接传全部,后端他想让传更新的,不知道哪个更好。
|