网络故障设计总结

当你正在用微信跟朋友胡侃,在b站看纪录片,逛虎扑怼skr。这时网络突然断掉,我们应该给用户什么样的提示呢?最近因为自己也在梳理类似的场景,所以这篇文章就来跟大家分享交流一下在网络故障场景下如何给予用户合适的提示。所有的报错提示/反馈都可以拆解为两个部分:报错现象解决方案。因此网络发生故障时我们首先应该告诉用户您当前的网络状态异常,让用户感知到这个事实,然后再提供解决方案。

目前来说,常见的报错样式有toast、snackbar、对话框、通告栏、界面内嵌空页面。最近看了一下自己之前的文章,发现都是基于组件来阐述适用场景。这种解构方式有个问题,那就是现实情况中,产品或者交互设计师都是基于场景去确定合适的组件。因此为了更方便大家理解,这里我不具体介绍每个组件的用法,而是以场景来定义来组件。

不提示

首先我们需要明确一个事实: 不是每一种网络故障都需要提示用户。这里的“不提示”其实是一个相对的说法,并不是真的不给用户提示,而是只有用户执行了请求数据的操作才告知用户网络发生故障。支付宝就是一个典型的例子,即使断网了,用户基本也感知不到。只有用户请求了新数据,才会以toast通知用户网络异常。
支付宝这种高冷也是有底气的,因为其多数页面都有缓存机制,用户不用每次进入这个页面都要去服务端请求一遍数据。类似的还有QQ音乐、咕咚,对于这些产品来说断网并不会带来灾难性的影响。因为断网不影响我去听缓存或下载好的歌曲,也不会影响记录运动数据。所以对于此类应用来说,当网络报错的时候,只要用户没有触发请求数据的操作,没有必要提示用户。
当然我们需要给缓存数据设置一个有效期,如果过了那个有效期,网络还是没有恢复正常,应该及时提示用户网络故障。

无缓存

当然并不是每一个页面都有缓存,对于没有缓存数据的页面,我们有两种方案。一种是展示空页面,另一种是展示骨架屏(Skeleton Screen)

骨架屏顾名思义就是展示页面的框架,当数据请求完成时再渲染页面。这种先占好位置再加载数据的模式也被称之为占位符,都是一个意思。最后再说空页面,其实空页面的展示方案也可以分为两种:

1 提供“刷新页面”按钮;

2 提供“解决方案”按钮

两种方案都有自己的道理,我个人更倾向于把两种方案进行融合。展示“刷新页面”的按钮,如果用户点击了还是没有办法请求到数据,这时以snackbar的形式提供解决方案。其实解决方案都是引导用户去系统设置里检查/开通网络权限。

持续性提示

有缓存数据的页面,支付宝可以不提示用户,但是对于QQ和微信这类即时通讯类的应用来说,给予用户网络故障的反馈是非常有必要的。因为如果不给提示,我不知道对方突然不回我信息是我惹对方生气了还是我网络故障收不到。QQ和微信这里统一采用的是通告栏,用户点击之后进入一个展示网络故障解决方案的页面。这里可能会有人问,为什么不使用对话框,对话框也可以完成跳转动作啊。
我尝试着来分析一下,如果使用对话框,那么对话框的触发机制有两种:1 只要检测出网络不通畅,立即弹出对话框通知用户;2 检测出网络不通畅,立即弹出对话框通知用户,不做二次提示;第一种触发机制明显不合理,因为用户使用微信并不一定非要网络通畅,有的用户就是想翻看一下聊天记录。你这边只要检测出网络故障就会弹出一个对话框,会对用户造成很大的干扰。第二种也不合理,如果用户所处的网络环境不稳定,时断时续,那么一旦你第一次点击关闭了弹出框,用户就无法感知到后续网络的异常。所以微信用户对于网络故障提示的要求是在 给予用户持续性的提示前提下,还不能干扰用户正常操作。好了好了,这个问题我知道了,但是我不需要立即去处理。
可以满足上面这个条件的控件有两个: snackbar通告栏,微信用的是通告栏,京东用的是snackbar。以京东为例,用户在使用京东过程中如果网络突然发生故障,那么会从界面顶部弹出一个snackbar来通知用户,用户点击之后会进入一个页面,展示一些解决方案。其实在上面我也提到过,所谓的解决方案就是让用户去系统设置页检查/开通网络权限,我们可以像网易云音乐一样直接提供一个跳转链接,节省用户操作步骤。
snackbar和通告栏的区别在于snackbar的位置是固定的,只要你的网络不畅通,那么它一直会出现在界面顶部。这是因为京东对于网络的诉求比微信要更强,没有网络微信用户还可以翻看聊天记录,京东用户没有网络还能干什么?没有办法浏览商品,更不用说剁手了,京东比微信更需要用户去解决网络故障的问题。

网络切换

除了断网与弱网情况,另一个需要考虑的问题是网络切换。当网络从4g切换至wifi,我们用toast来提示用户没有任何问题,甚至不提示也没事,不会对用户产生太大的影响。但是反过来说,wifi突然断掉,切换至4g网络,我们还能如此淡定吗?

当我用wifi观看视频,突然wifi断掉,会自动切换至4G网络。为了避免让用户在不知情的情况下耗费大量的流量,我们应该给用户一个网络变更的提示,用户确认之后才可以继续观看。提示的方式目前来说主要界面内嵌对话框,哔哩哔哩和网易云音乐这里用的都是界面内嵌。

有意思的是在网易云音乐中,如果你听歌过程中wifi突然断掉,那么4G网络会继续缓存歌曲,而QQ音乐是不会继续缓存的。仅从这点上来说,我个人觉得腾讯做的更贴心。
最后插一句: 网络状态由wifi切换至4G 绝对不可以使用toast!因为安卓的某些机型中,用户在系统设置中关闭推送会把toast也给禁用掉。对于这些用户来说,他们是收不到提示的,很容易造成流量的损失。所以优先级高的反馈我们都只考虑使用对话框,因为对话框所承载的信息用户100%会看到。

总结

以上就是我对网络故障场景下的设计总结,如果你有不同的看法或者意见,欢迎留言或者加群讨论。

王M争(公众号)

作者:王M争

(0)

相关推荐

  • win7常出现的网络故障以及解决方法

    上文为大家介绍了 " 这篇文章Windows7如何实现笔记本电脑无线网络共享的详细图文教程",但是在日常使用中Win7的无线共享功能常常会遇到一些问题:以下是编辑总结的一些使用windows 7系统常 ...

  • 常见无线网络故障的排除思路

    常见无线网络故障的排除思路 通过无线路由器进行无线上网,已经变得逐步普及起来;不过,在无线上网的过程中,我们常常会遭遇到各式各样的网络故障,这些网络故障严重影响了正常的上网效率。事实上,我们只要在平时 ...

  • 判断网络故障的四个ping命令

    四个ping命令判断网络故障如果你的电脑不能上网或者突然不能上网了怎么办?请专业人员来维修还是自己瞎急一通呢,下面给大家介绍如何准确地判断电脑不能上网问题出在哪里?又如何能快捷地解决这故障?希望下文的 ...

  • 连接Wifi时出现感叹号的无线网络故障解决方法

    Wifi出现感叹号怎么解决? 无线保真最主要的优势在于不需要布线,可以不受布线条件的限制,因此非常适合移动办公用户的需要,并且由于发射信号功率低于100mw,低于手机发射功率,所以无线保真上网相对也是 ...

  • Win7下进行网络宽带连接时出现错误代码651网络故障的解决方法

    在Windows 7下多用户进行网络宽带连接时就出现错误代码“651”的网络故障,发生“651”的网络故障原因较多,下面是解决错误代码“651”的网络故障的解决方法,望用户遇见“651”的网络故障,能 ...

  • Win7旗舰版系统自动检查和修复网络故障的功能使用图解

    在我们平常使用网络的过程中,总是会遇到一些网络故障,但是很多人都束手无策,其实深度技术Win7系统里面就为我们提供了自动检查和修复网络故障的功能,帮助我们更快找出并解决网络问题,所以用户只要碰到网络问 ...

  • 登陆vs出现网络故障的解决方法

    最近有网友和小编反应,说登陆VS对战平台的时候,提示出现网络故障了,小编给这些朋友仔细检查了网络,但发现没有出问题,后来经过多方的查找以及询问了VS对战平台的客服才知道原因,今天小编就来和大家说说登陆 ...

  • 网络故障难排除 五招化解保全速

     局域网在长时间运行后,总会发生一些稀奇古怪的网络故障,作为网络管理员最主要的一项工作,就是及时定位网络故障节点,同时寻找故障原因,并想办法快速将它解决。正常来说,当发生Web站点无法访问、网络连接测 ...

  • 教你排除简单网络故障

    教你排除简单网络故障