@my943813636
2020-03-06T06:09:19.000000Z
字数 1175
阅读 757
未分类
数据源会进行合并(成功的数据实体,失败时的错误码) 使用观察者模式对外暴露出的只有单一数据来源。
缓存控制策略
1. 缓存数据源不为空先使用缓存数据源并通知观察者,网络数据源获取成功后更新缓存数据然后通知观察者
2. 缓存数据不为空仅使用缓存数据源,不通过网络获取
3. 仅使用网络数据源
只在进入app,或者分类数据获取失败用户手动重试的时候触发
- 全局一份(很多界面需要使用到)
- 缓存:策略是先本地后网络数据持久化到本地但不更新内存中的分类
- 因为需要遍历获取说有分类所以耗时较长
- 因为首页数据和分类数据关联紧密,为了提高首页数据加载速度,会优先使用缓存的分类数据,而不等待网络分类数据返回
- 有缓存的情况下会优先使用缓存数据,且不会使用网络数据(网络数据会更新持久化缓存,在下次开启app时生效)
进入app,或者用户下拉刷新触发更新
- 优先使用缓存数据渲染界面
- 如果本地缓存存在,网络数据即使获取失败也不会显示错误
- 网络数据获取成功后会缓存然后局部更新ui
打开App,退登,登录 均会触发
涉及 购物车列表, 结算信息 , 优惠券信息, 促销信息, 推荐列表
退登、登录 会清空购物车缓存数据
数据渲染策略
通过 url 处理,解析url的path参数
eg: https://m.sisilily.com/checkout/cart.html?test=123
path 会分类3段
urlParams
匹配如果是原生覆盖的页面,跳转到原生页面,urlParams参数看情况选择传递

需要h5配合处理隐藏一些不需要的元素 使得页面沉浸感更好
app端传入 ua 会带上 mobile_app. h5 识别并隐藏部分元素.具体隐藏哪些后期待定
待补充