分析APP上的缓存与刷新

这里是IT修真院产品分享课,今天要分享的是前端

【分析APP上的加载 、缓存 、更新】缓存

1、什么是缓存

缓存是介于应用程序和永久数据存储源之间,目的是为了下降应用程序直接读写永久数据存储源的频率,从而提升运行性能。服务器

2、为何要加载缓存

场景一:【等待】在向服务器请求新的数据时。咱们让用户看到什么?第一种是漂亮的等待加载页面;第二种是缓存的内容。对于第二种,用户能够对页面进行操做,等待新数据时能够查看旧数据,更具备“可操做性”与“可用性”,从而减轻了从服务器获取数据这一动做的大小和时间长短,加强了用户体验。另外一方面,若是内容更新的间隔较长或者用户刷新的间隔较短,在没有缓存的状况下,不少数据咱们会屡次重复的向服务器获取,增长了成本。网络

场景二:【结果】没有联网,或者在地铁上网络太差没法加载数据时,若是留给用户一个空白页面,实在是感受有点不负责任啊。而且不少功能在没有联网的状况下也有使用的可能性,好比:APP中的通信录,查看一些聊天记录,通知信息,文章列表等。由于用户打开APP不必定是要看新信息,说不定是回顾老信息(或许老信息里也有用户以前没看的),因此恰当的缓存能够知足更多的用户场景。性能

场景三:【金钱】有一天,一个用户发现本身装了某个APP后流量用的特别快,Ta可能永远将这个APP打入冷宫了,而增长缓存正是节省流量的一个方法。虽然节省的很少或者用户也察觉不到,可是做为一个有态度的产品经理,应该多作一些思考。插件

3、如何清理缓存?

通常App都会在“设置”里提供一个清理缓存的功能,一键把空间释放。除此以外,App最好要设计自动清理机制,能够经过两个维度来设计这个机制。翻译

一、时间设计

经过设定一个固定的时间,或者根据用户使用周期灵活设定时间来清理缓存。每一个产品的场景不一,用户使用频率不一,设定这个机制的时候就须要结合实际状况考虑了。进程

二、容量get

通常是设定一个容量上限,采用堆栈的设计原理进行缓存清理,溢出堆栈的旧数据将自动清除。

4、什么是加载

加载是一种反馈状态,常见样式有菊花、进度条等。用户与产品的每一次互动都须要反馈,用户依赖反馈信息,才能顺利完成连贯的操做。用户在等待反馈结果时,焦急专一的盯着界面,这时,系统须要告诉用户“hi,我还活着,正在努力干活呢,别走!”

5、何时用加载

1s是对话中能够有的最长间隔,又由于交互系统的操做是一个对话的形式,因此交互系统应该避免本身一方的长时间间隔,不然用户会怀疑发生了什么。系统有1s的时间去执行用户要求作的任务或者标志出操做须要多少时间,要否则用户会失去耐心”——摘自《认知与设计》

结合上面这句话,关于什么时候使用,我这么理解:若是系统1s内就能完成任务,能够不给加载图标,若是系统1s内不能完成任务,则须要在1s内弹出加载中的提示。

加载的逻辑:

客户端接收到用户操做后,向服务端发送请求,服务端响应而后返回数据,客户端把数据翻译成用户看的懂的元素。用户从执行操做后就一直在等待结果。客户端从发送到接收到数据这段时间在等待结果。比较耗时的是发送接收数据以及渲染展现的环节。服务器查找时间取决于服务器性能和存储等;发送耗时受网络影响;渲染展现时间取决于前端和机器性能,知道这些,就能够对症下药了,谁家的孩子,谁拎回去修理,交互能作的就是配和他们的方案,选择合适的方式,作好对用户的宣传。

6、什么是刷新

简而言之,下拉刷新是刷新指示器于下拉手势想结合的产物,同时借助下拉动效完善整个交互。

最先的下拉刷新设计源自于Tweetie 这款应用的设计,设计师Loren Brichter 是这种使人欲罢不能的交互的缔造者。如今,下拉刷新的交互几乎无处不在,但即使如此也让人没法轻易忽视它带来的快感。从Twitter 到 Gmail,从QQ到新浪微博,它几乎存在于你触手可及的每个应用当中。

7、刷新是怎么运行的

下拉刷新本质上是一种特定的手动刷新交互,和其余的同类操做不一样的地方在于它采用了更加直觉的下拉操做。它的交互足够清晰明显,不过有的时候设计师依然会使用刷新指示器来显示自动更新的内容。不过,因为自动刷新的机制不须要用户进行任何操做,是所以自动刷新最好仍是不要使用刷新指示器了。

8、何时适合刷新

滑动刷新(包括下拉刷新)很是适合于列表、栅格列表和卡片集合之类界面(按照时间降序排列)。这类界面一般会随着时间推移,优先展现最新的内容,而且一般不会采用自动更新来刷新内容。不采用自动刷新的机制的缘由很简单,当你滚动到顶部的时候,若是采用自动刷新,内容会不断自动下载显示,对于用户而言,这样的自动显示的机制并不可控。而下拉刷新则很好的解决了这个问题,只有在你使用下拉手势的时候,触发刷新指示器,再行更新,这样也给了用户选择和退出的机会。

9、何时不适合刷新

下拉刷新并不是万能的,它有不适宜使用的场景。

屏幕小插件:这类小插件是须要自动更新的

地图应用:地图上的内容一般不会以时序排列,也没有明确的方向和内容来源,用户也没法直觉推断出下拉刷新的含义。

无序列表:有序列表一般可以给用户如下拉更新的指望,而无序列表在这方便则不明显,也没法直观地让用户看出其中的更新。

低更新率的内容:若是列表中的内容并不常常更新,下拉刷新的手势几乎没有存在的意义,由于用户去刷新列表的机率很低,也没有太大的必要。

按照时间前后顺序排列的内容:按照时间前后顺序排列的列表中,最新更新的内容排在最后,用户下拉刷新以后没法马上看到最新更新的内容,这样列表使用下拉刷新就至关尴尬了。

特殊类型的内容:许多须要实时更新的内容会在短短一分钟甚至更短的时间内失去时效,诸如股票、服务器后台进程之类的信息,最好使用实时自动更新。

【更多内容,欢迎加入交流群565763832与你们一块儿讨论交流】

【这里是技能树·IT修真院:IT修真院官网,初学者转行到互联网的汇集地】

相关文章
相关标签/搜索