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

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

一、什么是缓存

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

二、为什么要加载缓存

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

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

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

三、如何清理缓存?

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

1、时间

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

2、容量

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

四、什么是加载

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

五、什么时候用加载

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

结合上面这句话,关于何时使用,我这么理解:如果系统1s内就能完成任务,可以不给加载图标,如果系统1s内不能完成任务,则需要在1s内弹出加载中的提示。

加载的逻辑:

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

六、什么是刷新

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

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

七、刷新是怎么运行的

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

八、什么时候适合刷新

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

九、什么时候不适合刷新

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

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

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

无序列表:有序列表通常能够给用户以下拉更新的期望,而无序列表在这方便则不明显,也无法直观地让用户看出其中的更新。

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

按照时间先后顺序排列的内容:按照时间先后顺序排列的列表中,最新更新的内容排在最后,用户下拉刷新之后无法立刻看到最新更新的内容,这样列表使用下拉刷新就相当尴尬了。

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

【更多内容,欢迎加入交流群565763832与大家一起讨论交流】

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

转载于:https://juejin.im/post/5cb474d76fb9a0689c7ed6f0

分析APP上的缓存与刷新相关推荐

  1. 解决混合APP中网页缓存引起刷新不及时问题

    由于移动端的webview自带网页缓存机制,所以经常出现H5和原生交互开发时,前端开发人员给移动端提供了一个固定的网址路径,让移动端调用加载,当前端开发人员已经重新上传了新的网页内容,移动端加载的仍是 ...

  2. js app缓存自动刷新_如何通过清除缓存来刷新App Store中的内容

    js app缓存自动刷新 Are you finding that you're not seeing new apps on the App Store, or that updates to ap ...

  3. vue返回上一页不刷新页面的方法 / vue缓存页面

    问题: vue框架下,在返回上一页的时候(this.$router.go(-1)) ,默认会让上个页面重新执行一遍生命周期(即被刷新了). 想达到的效果: 返回上一页不刷新页面. 解决方法: 缓存上一 ...

  4. jQuery模拟原生态App上拉刷新下拉加载

    jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用. <!doctype html> <html ...

  5. jQuery模拟原生态App上拉刷新下拉加载效果代码

    以下任意均可: 1. jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用. 原文:http://www.sucaij ...

  6. 微信小程序实现微信APP上的扫一扫扫码跳到小程序对应的结果页面和签字等功能

    最近做了一个小程序项目,这个小程序是搭配APP端使用的,大概需求是这样的,用户用微信的扫一扫或小程序首页的扫一扫都可以实现对APP上的二维码进行扫码识别,识别成功之后跳到页面进行渲染,然后用户可以对其 ...

  7. Linux内存技术分析(上)

    Linux内存技术分析(上) 一.Linux存储器 限于存储介质的存取速率和成本,现代计算机的存储结构呈现为金字塔型.越往塔顶,存取效率越高.但成本也越高,所以容量也就越小.得益于程序访问的局部性原理 ...

  8. mybatis学习(46):二级缓存被刷新的情况

    目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; im ...

  9. php dns刷新,Windows DNS缓存自动刷新

    Windows DNS缓存自动刷新 admin • 2018 年 09 月 04 日 DNS(域名服务器) DNS(Domain Name Server)是进行域名和与之相对应的ip地址转换的服务器. ...

最新文章

  1. 70美元桌面电脑,树莓派400:键盘式集成开发板
  2. php 请求服务器时间设置,学习猿地-php如何设置服务器时间
  3. 程序界面把程序员这条路走下去
  4. ege函数库_EGE图形库|EGE图形库下载v12.11 最新版 附使用教程 - 欧普软件下载
  5. 搜出来的文本:基于BERT的文本采样
  6. 【离散数学】含有两个量词的谓词逻辑公式
  7. 自己总结的sql基本操作
  8. 微机笔记——1.微型计算机概述
  9. 使用libsvm(faruto)工具箱问题小结
  10. 【转载】读透《哥德尔、艾舍尔、巴赫:集异璧之大成》
  11. 参与LABSUniswap IDO送普吉岛酒店公寓
  12. 最近一段时间的找工作计划
  13. nodejs调用阿里云盾身份证二要素验证
  14. Python中 ‘\r‘ 的实际应用
  15. python计算列表里各科的成绩(算法)
  16. VR全景照片拍摄小技巧分享
  17. pkg-config的安装:1、运行配置文件进行系统配置 : ./configure时出错
  18. 基于WEB工作流管理系统的设计与实现
  19. 天邑TEWA-808AE融合机刷机,当贝桌面TTL烧录包
  20. Android项目 植物大战僵尸

热门文章

  1. 从零开始学习HTML(二)
  2. 解读“速途研究院:2012年手机浏览器市场分析报告”-----碎片化时间
  3. Window下的2D游戏-贴图技术
  4. 应用 | 小O地图在通勤路线规划的应用
  5. 计算机桌面小工具,有哪些学生党必备的电脑桌面小工具软件
  6. adb命令安装安卓apk包(首先解决adb不是内部命令或者不是外部命令)
  7. 今日上新推荐源码,高仿微信社交,高仿拼多多商城
  8. Parallel Algorithm
  9. 无国界医生_无国界团结
  10. 稻盛和夫教会我“人生精进”的10项原则(深度好文)