带你读《2022技术人的百宝黑皮书》——淘宝购物车5年技术升级与沉淀(15)https://developer.aliyun.com/article/1340550?groupCode=taobaotech
购物车分页渲染场景与全局内容感知这一诉求之间的矛盾
1. 即如何在购物车分页渲染(用户主动翻页驱动)的前提下,提前感知、聚合用户购物车全部商品的信息进行某些氛围的表达,一直以来购物车的很多诉求都与之相关:第一版惊喜券飘条透出、筛选入口透出逻辑、tab提示等等;这里对全局商品的感知诉求又包含两个层次,基础商品标志(id等)、商品IC基本信息(商品标签等)、复 杂商品信息(具有购物车场景语义的优惠、失效等);不同层次对购物车的依赖不同;
技术突破带来的业务升级购物车筛选能力
2020年双十一之前,淘宝购物车是没有任何商品筛选功能的。而商品筛选分类,提高发现效率一直是用研报告中, top级别的用户诉求点。
难点分析
- 分页模式:购物车为分页查询,筛选商品可能分布在不同的页面中(例如极端情况下,希望筛选出的商品在购物车分页查询中的最后一页);
- 合并结算:各个筛选“页面”下的商品勾选操作在切换过程中需要保留,底部动态计算结果需要保留(例如在筛选浮层下筛选出的商品在购物车分页查询中的最后一页,且被用户勾选参与动态计算。关闭浮层回到后商品勾选保留,动态计算结果保留);
- 用户的操作体验要求,例如底部价格不能出现跳变等;
技术方案选型
方案类型 |
方案描述 |
优势 |
劣势 |
客户端筛选 |
用户刷新购物车,查询第一页以及预加载,渲染50 个商品; 点击凑单筛选,用户购物车剩余商品完整信息全部一次性拉出; 由服务端对商品等组件打筛选标,客户端根据组件标做显示/隐藏实现商品的筛选 |
客户端筛选,筛选浮层勾选态可一直保留,不会存在回到大购物车滑动,结算栏跳动问题; 点击凑单筛选拉回全部商品,避免客户端串行依次请求带来的各种时序等异常流问题,异常流某种程度导致用户购物车页面结构错乱; 一次下发全部商品,后续筛选可由客户端完成,基本不存在对服务端的再次调用; 后续能力可复用,例如预售筛选; |
部分流量,加载商品数大于40个,存在rt过高,端上体验较差以及带给服务端性能压力问题(可参考后面压测流量评估,高峰降级)(需要评估rt时间看端上体验问题) |
服务端筛选 |
点击筛选,服务端只下发跨店满减商品; 点击关闭,由于需要保留勾选态,因此需要下拉用户购物车其他剩余商品完整信息; 再次点击筛选/关闭,保持和客户端筛选方案一致的逻辑,做客户端筛选; |
沉淀能力,后续筛选能力可复用 |
相对于客户端筛选方案流量没有减少(性能压力没有减小),依次点击关闭,反而多了一次调用; 第一次打开,关闭的时候,会出现rt过高用户体验差的问题; |
带你读《2022技术人的百宝黑皮书》——淘宝购物车5年技术升级与沉淀(17)https://developer.aliyun.com/article/1340548?groupCode=taobaotech