• 缓存系统的决策:什么数据要缓存?什么缓存数据要丢给业务?


    App进入页面请求服务器,在数据返回之前,没什么给用户看,所以我们用一种缓存系统来保存上次请求的数据,这次进入的时候先把缓存数据绘制到UI上,让用户先看到整个页面布局和可能过时的数据,等网络数据返回后再刷新一遍页面,以此来提高用户体验。那么就带来两个问题:
    1, 什么样的数据应该缓存起来?
    2, 什么情况下应该把缓存数据丢给业务?什么情况下不可以?
    总结一下:
    1, 什么样的数据应该缓存起来?先说不应该缓存的数据,包括:
            a. 提交类的接口返回数据,缓存的目的是为了填充页面UI元素防止白页,提交类接口数据跟这个目的没关系,并且提交类接口数据实时性要求最高,不能容忍过时数据,如果缓存了,会导致严重错误。
            b. 分页列表数据的非第一页,不应该缓存,对照防止白页的这个目的,第二页以后的数据跟这个目的没关系;
            c. 接口请求失败返回的数据,一般是默认错误提示等;
            d. 接口请求成功但是解析失败的数据,这等于是脏数据;
            e. 接口请求成功并解析成功,但业务上属于失败的数据,比如被踢出了,账号异常了,这些肯定要触发统一的风控规则,用户下一次进入页面肯定不希望因为过时的踢出数据把自己踢下线;
            除了以上的case,请他的数据都可以缓存起来。
     
    2, 什么情况下可以把缓存数据丢给业务? 什么情况下不可以?
            a. 网络回来的数据,当然肯定不是缓存数据了,要无任何条件得丢给UI.
            b. 不符合上面1段落描述的数据,就是不该缓存的数据,但万一缓存系统给保存了,那么取出出来丢给业务之前,要再做一次判断,做个兜底,如果这个缓存数据本来不应该被缓存,此时就不要一错再错丢给业务了;
            c.  如果页面上已经渲染了数据,不是白页了,则缓存数据不应该丢给业务,这样做会多此一举并且导致UI多闪一次;
     
  • 相关阅读:
    NO.2
    【转载】初始化顺序
    Java中的容器
    primer看完了
    NO.1
    转 Python爬虫入门二之爬虫基础了解
    转 Python爬虫入门一之综述
    hdu 5691 Sitting in Line
    51nod 1043 幸运号码
    51nod 1624 取余最长路
  • 原文地址:https://www.cnblogs.com/mosthink/p/6088326.html
Copyright © 2020-2023  润新知