前些天,在天天问里面看到有个关于如何设计“清理缓存”的功能,然后思考了一下的确很多APP上都有清理缓存的功能,但是也有少部分APP上没有清理缓存的功能,那么问题来了,缓存是什么?有什么价值?又要如何设计清理缓存功能呢?于是乎,就有了今天的这篇文章。 一、什么是缓存? 缓存就是数据交换的缓冲区,当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。简单的理解就是把用户访问的数据存在本地,当用户在某些情况下需要使用时,直接在本地调取缓存的数据,这样效率较高。 二、有哪些APP缓存方式?按需缓存,是把从服务器获取的内容以某种格式存放在本地文件系统,之后对于每次请求,检查缓存中是否存在这块数据,只有当数据不存在(或者过期)的情况下才从服务器获取。这样的话,获取数据的效率就明显提高了。预缓存,是把内容放在本地以备将来访问,另外就是在本地缓存无需重新连接服务器时可被编辑。编辑可能是用户进行“标记记录为已读”或“加入收藏”,或其他类似的操作。三、为什么要有缓存? 缓存的目的主要是提高APP的性能和离线访问数据,那么对于用户来说有哪些价值? A场景 用户首次打开资讯类APP首页,loading了5秒钟首页资讯信息才全部展现出来,然后点击某一条资讯,浏览该咨询的详细信息,浏览完再返还到首页浏览其他资讯,这时候首页加载多久才能显示出所有资讯信息?如果还是要loading5秒钟的话,那么用户反复的进入下一页和返还首页的过程中,会明显感觉到首页总是在loading,从而消耗了用户时间,也降低了用户体验。 缓存价值:提高APP性能和页面加载效率,第一次将页面资讯信息进行缓存到本地,后续在未刷新情况下直接调用本地数据而不是访问服务器数据,来提高数据获取的效率。 B场景 用户在有网络的情况下,使用阅读类APP点击查看了一本小说,而后出门在地铁上无聊想看这本小说,但这时候地铁内无信号,如果仅仅因为没有信号的原因,用户打开APP映入眼帘的就是带有网络异常的警示页和他无法阅读之前中意的小说的结局吗? 缓存价值:支持离线访问,用户在APP离线无网络的情况下,仍可以阅读之前缓存到本地的小说内容,即解决用户离线访问的需求,又提高了离线情况下APP的视觉友好度。 C场景 用户在使用社交APP时,因为外界因素导致长时间处于无网络的情况下,这时候他想删除某一条聊天记录,或者是收藏一篇美文,亦或者是给好友的动态进行点赞。那结果会是因为APP离线的情况下,用户无法进行以上的操作嘛? 缓存价值:支持用户离线操作,对于将之前用户浏览的信息缓存到本地后,用户仍可在离线状态下,对信息进行辅助性操作,比如点赞、收藏、标记等。这样能提高用户的满意度。 D场景 用户使用短视频APP查看了一部20M的短视频,花费了20M流量。当用户观看完就关闭APP了。那么当用户觉得之前观看的短视频很精彩,想再次观看这部短视频的时候,还需要花费20M流量吗? 缓存价值:减少用户流量损耗,当用户第一次观看短视频时,已经花费一定的流量将其缓存到本地,后续还需要观看此短视频,则无需花费流量来从服务器端获取此短视频,可直接在0流量情况(等同于离线)下直接观看此短视频。 四、如何设计清理缓存功能? 上述主要介绍假设的四种用户场景及对应体现出的缓存价值,可以肯定的是APP的缓存功能是有一定的必要性。那么手机缓存只有优点没有缺点嘛?答案显而易见是NO。毋容置疑的是APP的缓存会一定程度上影响到用户手机的储存空间,所以需要设计一个清理缓存的功能,以便于用户有效的使用被释放的存储空间。那么接下来谈论如何来设计清理缓存功能呢? 是否需要用户清理缓存 1、不需要 不需要用户清理理APP缓存的前提是,此APP不会占用用户手机过多的存储空间,这时候就不需要用户自己来清理缓存了,可以通过系统自动来清理APP缓存。自动清理缓存的两个要素:设置缓存的上限、设置清理缓存的频率。 2、需要 (责任编辑:admin) |