辑导语:加载是信息更新的反馈过程,合理的有效加载交互设计可以减少用户焦虑,减轻用户等待的压力,进而达到提升用户体验的目的。本篇文章里,作者针对移动端与网页端的加载策略机制做了介绍,一起来看一下。
加载是信息更新的反馈过程。包括人机交互的反馈,以及机(客户端)与服务器(后台)的交互的反馈。
加载的触发方式包括两种:一种是用户手动触发,比如点击【朋友圈】。
另一种是系统定时任务,按一定频率或规则自动执行。如聊天信息的时间,1分钟内显示“刚刚”,那么定时任务就可以一分钟刷新一次,自动更新时间显示方式。
产品经理要确定加载的策略机制,缩短或分散等待时间的压力。同时优化反馈效果,缓和焦虑。
以下对移动端和网页端分别做讨论。
一股脑把整个页面的内容全部加载给用户。网速不友好的情况下很容易就会“难产而死”。因此在加载过程中会出现白屏。
为避免空空如也,常配合菊花或进度条。
可以从三个角度进行设计:
异步加载是一种比较成熟的指导思想。多用在页面内容比较多的时候,以及图文混排的时候。
预加载就是,在加载一个页面内容的同时,预测用户的下一步行为,并为他下一步需要使用的页面提前加载内容。比如网易新闻中,断网依然可以查看新闻,即使这条新闻你从来没有打开过。
懒加载的方案就是,仅当图片滚入视窗,被用户看到的时候,才会去真正加载。目前,淘宝网、知乎等大流量网站都已经使用了图片滚动懒加载的方案。
分页加载可以减少单次加载压力。适用于瀑布流、长列表、商品列表等情况。
有的分页有明确的【下一页】按钮,点击即加载下一页。
有的是无形分页,如抖音的视频瀑布流,用户看起来是个没完没了的信息流。
这就是为什么当我们看新闻、逛淘宝、刷微博时总是走不出来的原因。缺点就是容易迷失,不方便快速索引定位到某个内容。
首先在有网时候把数据提前加载下来,缓存到本地,当没网的时候,直接加载已经缓存下来的内容。
但考虑到手机空间,要设计合适的清理缓存的机制。
1)加载图标的样式
通常选择传统的菊花动效就可以。
如果我们更进一步,可以将品牌基因植入指示器的设计中。以飞猪的loading动效为例,无疑体现产品之间的差异性。
我们可以花点心思,选择通过一些有趣的动效分散用户在等待过程中的注意力。
2)loading图标展示位置
1)启动页
启动App需要一个短暂的过程,启动页的作用就是为了等到系统加载启动。
启动页可以是广告位、节日营销或加强品牌意识。可以为静态页,也可以是动态图。
启动页还有一种做法就是,做出和首页一样,给人感觉进入首页特别快。
2)以跳转或动效掩饰加载
跳转本身也占用一定时间,因此也可以为加载争取时间。比如加入购物车的动效。
用户有选择退出加载的权利,同时也可以设置默认时间内加载无法进行提示用户重新加载。
假如用户试图访问你的网站,那么你的网站最好能在10秒之内打开,如果超过这个时间,他就会放弃任务的执行。
许多研究表明,用户最满意的打开页面时间是2秒以下。如果等待12秒以上,网页还没有载入,那么99%以上的用户会关闭这个网页。
Google曾经做过的一个实验,显示10条搜索结果的页面载入需要0.4秒,显示30条搜索结果的页面载入需要0.9秒,采用后面一个方案的话,流量和收入各减少20%。
这就是为什么许多电商后台管理系统中,默认加载数据条数是10条,而不是15或者30。
用户打开一个页面,首先是页面的框架,那些不需要加载的内容呈现出来,再逐步拉取服务器的数据,在PC端就会出现页面部分内容为空白的情况。在APP端使用H5技术打开web页面的话一般会给予加载条。
我们可以这样理解,打开一个html为基础的静态页面,然后里面夹杂着调用服务器运算规则的元素,不断渲染和加载,就呈现了我们期望中的样子。
用户等待的时间主要花费在下载网页元素,即HTML、CSS、JavaScript、Flash、图片等。
统计显示,每增加一个元素,网页载入的时间就增加25-40毫秒(取决于用户的带宽情况)。
打开页面→HTML写出的静态页面→javascript/VBScript/ajax(AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)等渲染→对提交的表单进行数据处理,向后端发起ajax请求对应PHP的api接口→PHP在接收到数据后对连接服务器,服务器再通过PHP中的SQL语句对数据库关键字进行处理返回给PHP,再由PHP返回给前端,前端通过JS处理将数据渲染在HTML中,最终呈现给用户。
加入购物车的点击事件大致步骤为:用户点击”加入购物车”按钮→页面获取当前商品唯一值(如商品ID:productID)→JS处理点击事件,将唯一值连同用户信息通过ajax请求传送给PHP→PHP向服务器请求连接→数据库语句执行→服务器将执行结果返回给PHP→PHP将执行结果传送给前端。
如果数据库语句执行成功,那么数据库中该用户的购物车表就多了一项刚加入的商品数据,同时服务器也会向PHP返回执行成功信息(及一条不为空的数据串),而用户的界面就会显示”成功加入购物车”等字样。
若执行失败,也会将失败信息(err)传给PHP,用户界面也会显示相应的提示。
由于现在的web页面中,大量使用JS,导致浏览器打开页面,就会占用大量的内存,服务端的压力是减轻了,但压力转移到了客户端。
1)减少HTTP请求数
用户在打开一个网页的时候,后台程序响应用户所需的时间并不多,用户等待的时间主要花费在下载网页元素上了,即HTML、CSS、JavaScript、Flash、图片等,统计显示,每增加一个元素,网页载入的时间就增加25-40毫秒(取决于用户的带宽情况)。
所以,想要提高网页打开速度,就要减少HTTP请求数,方法有3种:
2)使用CDN(内容分发网络)
用户与你网站服务器的接近程度会影响响应时间的长短,把网站内容分散到多个、处于不同地理位置的服务器上可以加快下载速度。CDN由一系列分散到各个不同地理位置上的Web服务器组成,它根据和用户在网络上的靠近程度来指定某台服务器响应用户的请求。
现在市面上有很多第三方CDN产品,比如加速乐、安全宝等,可以根据公司的情况来选择。
注:该部分内容参考书籍《后端产品经理宝典》。
3)压缩网页元素
网页中的每个元素越小,下载所需的时间就越少,这个很好理解。现在比较成熟和流程的压缩网页的方式,是通过Gzip,我自己的实操经验来看,一般可以将网页文本内容减少70%以上。
4)样式表放在网页head部分
把样式表(CSS文件)移到网页的head部分可以让页面尽快开始渲染,用户所感受的载入速度将会变快。
5)把JS文件放到网页底部
网页打开时,所有元素是顺序显示的。由于JS文件的特殊性,其相比其他元素来说,会加载的很慢,在JS文件下载完成之前,其他后面元素的顺序显示将被阻塞,因此把JS文件尽量放在底部,意味着内容能被快速显示。
6)把样式表和JS脚本放到外部文件中
尽管将样式表和JS脚本直接写入网页HTML中,可以减少外部文件调用数量,从而增加HTTP请求数。但是,这样做会增加网页的文件大小。综合来看,将样式表和JS脚本放到外部文件中,也许用户首次访问时会有点慢,但是后续在访问网站时,页面内容通过浏览器缓存来减少HTTP请求,从而达到快速显示的目的。
网页中的每个元素越小,下载所需的时间就越少,这个很好理解。现在比较成熟和流程的压缩网页的方式,是通过Gzip,我自己的实操经验来看,一般可以将网页文本内容减少70%以上。
在提升网页打开速度的同时也不能忽视另一个问题:响应。
对于用户来说,每次的操作,不管返回结果是慢、还是快,都要及时予以响应。曾经就有过一次用户始终在等待处理中,开始一位是网速问题,最后开发查了代码知道这个用户根本没有操作权限,如果能够果断提醒无权限,用户也知道离开或求助,不至于一直等下去。
1)用户做完某些操作(如发布评论),页面需要自动刷新。
2)提供给用户刷新操作的方式,如下拉或者点击标题刷新。
当数据获取较慢,或网络状况不佳时,要有统一的加载方案图示告诉用户“数据正在加载中……”如:漏斗、菊花、进度条等具体图文可参与UI设计效果。
3)失败/空页面
当页面没有数据、加载失败或出错时,要有统一的提示文案图标告诉用户“页面加载失败/暂无数据/页面出错”,具体图文可参与UI设计效果。
用户点击页面加载是所有web页面都要深入考虑的问题。因为不仅影响交互效果,关乎系统性能,影响业务效率。在一般情况下,对于页面负载严重的部位,产品经理要考虑异步加载或延迟加载。
1)异步加载
异步加载也叫非阻塞模式加载,就是在浏览器在下载js时,同时还会执行后续的页面处理。
异步加载的机制很常见。比如发布朋友圈时,你不用等所有文字和照片都上传完毕,才显示朋友圈,当你点击发送后,App上显示出你已发出的朋友圈,然而微信其实在后台仍然在上传数据,仔细看上图在发布完朋友圈之后,会有一次内容的闪屏,那个时候才是将数据正式发布并展示给好友。
这样的异步处理减少了用户的等待时间,消除了用户的焦虑感。
2)延迟加载(lazy loading)
顾名思义在需要的时候才加载,这样做效率会比较低,但是占用内存也低。页面有大量不同的模块组成,很多可能暂时不用或根本就没用到。
就像图片的延迟加载,在图片出现在可视区域内时(在滚动条下拉)才加载显示图片。用户滚动到它们之前,视口外的图像不会加载。在某些情况下,它还可以帮助减少服务器负载。
举个例子来说明,当打开淘宝首页的时候,只有在浏览器窗口里的图片才会被加载,当你滚动首页向下滑的时候,进入视口内的图片才会被加载,而其它从未进入视口的图像不会也不会加载。
3)预加载
预加载是一种浏览器机制,使用浏览器空闲时间来预先下载/加载用户接下来很可能会浏览的页面/资源,当用户访问某个预加载的链接时,如果从缓存命中,页面就得以快速呈现。
让加载时间变得更有价值——减少等待时间。
让加载变得更加有趣——忘记等待。
保证用户对加载的可控性——及时退出加载,减少等待时间。
唧唧歪歪PM,公众号:唧唧歪歪PM(ID:jjyypm),人人都是产品经理专栏作家,2019年年度作者。《后端产品经理宝典》作者,药学硕士转行互联网产品多年;熟悉跨境电商业务,医药领域;擅长大型后台体系,社交APP。
本文原创发布于人人都是产品经理,未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
大家用CSS写一个极简风格的小键盘,和之前做拟态风格按钮的思路是一样的,都是通过多层阴影叠加起来形成这种立体感。元素非常简单,现在写了一些基本的样式,其它样式重新来写。
·现在是一个带有圆角和渐变色的小方块,就这样子在这里。接下来把它的阴影一层一层的画出来,继续。现在叠加了右下角的这块阴影,看起来就有一种悬浮的感觉了。
·接下来写个伪元素,通过定位配合一下inset,把它的盒子大小撑开,同样也是给个渐变颜色,再加一点圆角来看一下。
·接下来写伪元素的阴影,这一层也是比较淡的,在右下角的一层阴影来看一下,没有问题,右下角这些地方加了一层。
·接下来给伪元素的上边、下边和左边都加一点边框,看起来更加有质感一点。这里放大给大家看,加了一点边框,这三个方向都加了。
·接下来再给外面span加两层内阴影,现在这个是加在右边了,刷新没有问题,相当于在这个按键的底部又加了一层,这样这个按键的样式就写好了。
·接下来就多写几个按键,都是套用这个样式,再把上面的字母写上去就可以了。C这个字母出来了,剩下几个都是一样的,直接写出来,没问题。
·在CSS这里换一下行,再来个空格键,最后一个让它的宽度撑满。
这个视频就到这里,感谢大家的收看。
一天,领导丢过来个需求,要求改一下页面上的一个按钮。我想了想,按钮简单啊,很快就画好发过去了,没想到被领导打回来说不行!
我看着自己做的按钮,一脸茫然,这个按钮饱满诱人还亮晶晶的,怎么就不行了呢?
是不是初入职场的你也遇到过类似的问题呢,今天我就针对UI设计中按钮设计指南进行简单说明,希望能帮助到大家。
一、按钮的设计要点
1.1、按钮的设计尺寸
根据 iOS 和 Android 给出的建议,在界面设计中,按钮尺寸至少高于 5.5 毫米(36 pt),否则用户点击时会较为困难;iOS 提出的44 pt,Android 提出 48/56 pt,都是用于特定场景下,具体情况还需具体分析;
按钮尺寸一般有2种设计形式:
(1)按钮长度固定,文字长度变化
(2)按钮长度根据文字长短而变化,这种情况文字距离按钮上下左右边距一般成一定比例关系
1.2、按钮的形状样式
(1)按钮形状:按钮设计时,需要根据产品属性和界面风格设计合适的形式,按钮形状主要有直角、小圆角、全圆角三种样式。
直角按钮:直角具有严谨、力量、高端的特点。适用于金融类、奢侈品类产品中,给人严谨安全、高端的感觉,符合产品调性。例如京东金融
小圆角按钮:小圆角具有稳定、中性的感觉。适用于用户跨度较大的常规类产品中,例如微信、滴滴。
全圆角按钮:全圆角具有活泼、年轻、安全的特点。适用于儿童类、年轻化、娱乐类、购物类的产品中,具有亲和力,拉近与用户之间的距离。例如淘宝、京东、爱奇艺。
(2)按钮样式:按钮样式主要分为面形、线性、文字加图标、文字按钮等,视觉优先级:面性>线性>文字
1.3按钮的状态变化
在界面设计中需要考虑按钮不同状态的设计,从而提高用户操作流畅度。移动端常用的按钮可以分为正常状态、按压状态、禁用状态三种。
其中,正常状态展示的是APP的主色;按压状态在正常态的基础上叠加15%不透明度的黑色#000000蒙版;禁用状态是设置灰色或者将正常状态设置45%不透明度。
通过上图的对比可以发现,都是不可点击,纯灰色按钮更像是禁止且不会被可用的状态。而使用品牌色,降低不透明度,可加强用户对该产品按钮的认知。且暗示用户该按钮满足条件即可被点击,所以个人觉得第二种方案会更合理。
另外,根据现在网络速度的发达,按压状态慢慢被忽略。
1.4提供恰当的反馈
当用户点击按钮时,UI设计中按钮设计指南https://www.aaa-cg.com.cn/ui/2564.html?gpf他们希望界面有恰当的反馈。如果没有任何反馈,用户会以为系统没有收到他们的操作,然后就会重复多次点击。这种行为常常导致多个不必要的操作。
1.5多个按钮位置摆放
从产品需求来说,要根据具体页面的业务需求而定,比如设计一个弹窗的关闭按钮,如果不希望用户太快的关闭弹窗,最好放在相对边缘的角落;如果希望用户阅读完内容后关闭,则应放置在内容结尾处,方便关闭。
总的来说,按钮的位置要根据具体的需求来摆放,这里记住一点,根据用户右手操作习惯,一般最重要的按钮会放在最右边,提高操作效率。
二、按钮功能类型及使用
按钮的功能类型往往决定了一个按钮的设计方式是需要强调还是需要弱化;文案是需要强引导,还是直接阐述功能;按钮上放不放图标等。按钮根据功能的不同,可以分为不同的类型,主要有行为召唤按钮、悬浮按钮、命令按钮、开关按钮等。
2.1.行为召唤按钮
行为召唤(CTA)按钮:通过设计诱导或激励用户点击, 从而提高产品的转化率。例如立即购买、订阅关注、利益诱导等。
(1)诱导购买
当行为召唤的目的是诱导购买时,按钮的设计从颜色、形状、样式上都需要突出。让用户进来第一眼就能知道该按钮的用途。如下图所示:
以饿了么为例,该按钮的颜色采用绿色色块,同时加入购物箱的元素,配上小红点,能够清晰的给用户传递出可点击部分有去结算、购物箱。另外加入价格诱导,让你可直观看到优惠了多少钱,促使你进一步操作。
以淘宝详情为例,该按钮是一个组合按钮,由加入购物车和立即购买以及店铺、客服、收藏组成,不管从颜色、形状、样式都能够让我们快速地注意到。
(2)订阅关注
当行为召唤的目的是订阅关注时,在设计时根据产品目的判断是诱导用户订阅关注重要,还是让用户阅读内容重要,来设计按钮大小、样式等,如下图所示:
当订阅关注重要时,按钮的设计需要强化处理,当内容重要时,按钮的设计需要弱化处理。
以大众点评和图虫为例,大众点评的页面是以订阅关注为主,所以按钮加了描边样式,而图虫很明显是以内容为主的界面,在设计时直接弱化了按钮形式,让按钮和整个界面相融合,另外按钮设计的原则是让其看上去像按钮,因此当按钮只是文字时可以加图标进行引导,也可以加入浅色背景进行突出。
2.2悬浮按钮
悬按钮浮是 Android 应用中最常见的一个控件。不过随着Android和iOS规范的不断融合,在iOS中也经常会看到各种各样的悬浮按钮。悬浮按钮经常采用显眼的颜色或加投影的方式来设计,以吸引用户的注意力。如下图所示:
以豆瓣和腾讯视频为例,悬浮按钮在页面的右下角出现,和界面结合很容易看出是创建内容的意思。
2.3.命令按钮
命令按钮指该按钮具有明确的指令,多出现在弹框中,一般分为一个文字命令或2个文字命令。其要求是文字语义要明确,同时根据用户的操作习惯,一般遵循"左回退右行进"的设计原则。如下图所示:
左图是京东金融退出的确认页面,将确定按钮做了视觉突出,右图是同程旅游订单返回页面,需要注意的是,这里将继续预订做了视觉突出并放在右侧,跟我们平时习惯的左回退,右行进操作相反,我想这是因为这里的业务目标是想让用户继续下单。
2.4.开关按钮
开关按钮也是我们很常见的一个组件。表示两种相互对立的状态间的切换,多用于表示功能的开启和关闭。当按钮开启后可能还会带来其他的相应操作。开关按钮最常见的就是手机设置中,但是也有很多APP将其用到界面中使用。如下图所示:
以同程旅游和驴妈妈为例,它们在提交订单页面时都采用了开关按钮,这种开关按钮还可以做点击展开的操作来增加更多的功能内容。
三、总结
一、按钮的设计要点:尺寸、形状样式、状态变化、恰当的反馈、多个按钮位置摆放
二、按钮的功能类型:召唤按钮、悬浮按钮、命令按钮、开关按钮
好了,以上就是今天分享的内容,因此,您现在已经了解了与UI设计师的工作相关的主要技能。如果您想了解更多信息,请留言给我,我会给大家解答。
*请认真填写需求信息,我们会在24小时内与您取得联系。