例:一个包含子商品展示页面。
后台接口提供的数据类型:
1.商品详情接口:api.gd_detail.xxx
数据结构
{goods:{"pid":123,
...
"children":[
{"cid":1234,"key":"value",...},
{"cid":1235,"key":"value",...}
]
}}
2.商品收藏列表接口:api.gd_favor.xxx
数据结构
{favor_list:[
{"cid":1234,"key":"value"},
{"cid":1246,"key":"value"},
{"cid":1247,"key":"value"},
{...}
]
}
那么问题来了:
在商品详情接口,后台因为某种原因没给我提供子商品是否被收藏。
渲染商品详情的页面时候,目前的做法:
拿到商品详情数据后先渲染页面并且在 dom 上埋点 cid,children 数组拿出来跟 favor 里面的 cid 进行遍历比对,找到比对上的 cid
重新遍历 dom 树,对埋点的 don 进行二次渲染。
这样做,感觉总是怪怪的。如果商品详情页以后每增加一个功能,我都要去取数据,对比,二次渲染,不管是性能和代码冗余都不太好。请问各位大神,怎么做才能一劳永逸。
1
giuem 2017-05-27 13:35:03 +08:00 via iPhone
可以先 merge 数据,再用渲染
或者叫后端加一层 API Proxy |
2
wly19960911 2017-05-27 13:58:51 +08:00 via Android
先拿到两个数据再处理不行吗。
或者客户登录先拿下收藏存到本地,然后一次拿到数据再对比添加最后渲染 |
3
leega0 OP |
4
ChefIsAwesome 2017-05-27 14:14:13 +08:00
你自己把 api call 那一级封装下,在那里加 proxy。到 view 那层是你需要的数据就行了。
|