写点什么

表单设计: 一页只做一件事(三)

  • 2019 年 12 月 30 日
  • 本文字数:1315 字

    阅读完需:约 4 分钟

表单设计:一页只做一件事(三)
  1. 解决了性能问题


如果每件事都复杂无比——单页应用就是一个极端例子——性能问题就很难解决。是因为执行时间问题?内存泄漏?还是 AJAX 请求导致的?


人们很容易认为 AJAX 能提升用户体验,但增加代码量很少情况能创造更快的体验。


复杂性转移到客户端,会掩盖服务端的根本问题。但如果页面只做一件事情,性能问题就不容易产生。如果真发生了问题,排查原因也很容易。


  1. 它有一种在前进的感觉


因为用户在不停地前往下一步,会产生一种正在前进的感觉,在用户填写表单时给他们一种积极的感受。


  1. 降低丢失信息的风险


长表单需要更长时间来完成。如果所花时间太长,页面超时可能导致信息丢失,产生严重的挫败感。


又或者,电脑可能卡死,*《我是布莱克》*里的主角 Daniel 就是这样的例子。他的健康每况愈下,而且第一次用电脑就遇到了死机,然后数据丢失。最终他放弃了。


  1. 第二次使用的体验更顺畅


比如,假设我们储存了用户的支付信息,我们可以直接跳过那一页,直接带他们去“结账确认”页面。这会减少阻碍,提升转化率。


  1. 这是移动优先设计的一种补充


移动优先的设计,提倡在小屏幕上只呈现最重要的信息。一页只做一件事,也遵循着相同的方式。


  1. 设计过程很简单


当我们设计一套复杂流程时,分解成细小页面和组件,可以让人更容易理解这些问题。


还可以方便地调换页面来改变顺序。我们一次只研究一件事,这点和用户一样,能让我们更轻松地分析问题。


这可以减轻设计负担——这种模式让用户受益的同时,还能有这样的附加福利。


这种模式适合所有情况吗?


也不完全是。Caroline Jarrett 在 2015 年写过一篇文章《一页只做一件事》,里面讲得很清楚。她解释道,用户调研“会告诉你某些问题组合起来放在长页面里更合适”。


但是反过来,她也提到了“对于设计师来说‘属于一组’的问题……对于用户而言,并不一定要放在一个页面上”。


她提出了一个颇具启发性的例子,GOV.UK 的验证页面中,他们尝试把“创建用户名”和“创建密码”先后放在两个页面上。


就像许多设计师所认为的,Caroline 觉得把这两者放在不同页面有点太过了。实际上,用户对此一点也不介意。


关键在于,以一页只做一件事为出发点,然后通过用户研究,验证把其中一些项目编组合并,是否能进一步改善用户体验。


这并不代表最终结果一定是把页面合并——在我经验中,最好的结果往往是把事情拆分开来,仅此而已。当然,我也希望听听你的经验。


总结


这种低调不起眼的用户体验设计模式很灵活、高性能、有包容性。这是真正拥抱互联网的方式,对于自信满满和小心翼翼的用户而言都很简单。


一个页面上展现很多(或者全部)内容可能会营造一种简单的幻象,但就像代数式问题一样,除非把它们分解,否则很难处理。


如果把任务看作是用户想要完成的一笔交易,把它分解为多个小步骤很有必要。这就像我们在用网页的一砖一瓦来搭建渐进式表单。每一页背后的隐喻,都给潜意识营造一种正在前进的感觉。


我还没有遇到过哪种其他的设计模式,能具备这么多的优点。这就是那种真理时刻——答案总是最简单的。


作者信息:Adam Silver


原文链接:https://www.smashingmagazine.com/2017/05/better-form-design-one-thing-per-page/


本文转载自 Think 体验设计公众号。


原文链接:https://mp.weixin.qq.com/s/7yIAqH7nFhPHMtfmi_VeaQ


2019 年 12 月 30 日 18:02203

评论

发布
暂无评论
发现更多内容

Druid 从控制台(Druid console)从 SQL 脚本转换为 JSON 格式的方法

HoneyMoose

【设计模式】原型

Andy阿辉

C# 编程 后端 设计模式 8月日更

复杂多变场景下的Groovy脚本引擎实战

vivo互联网技术

敏捷开发 脚本语言

Design for failure常见的12种设计思想

架构精进之路

降级 重试 容错 8月日更

十大排序算法--插入排序

Ayue、

排序算法 8月日更

原来select语句在MySQL中是这样执行的!看完又涨见识了!这回我要碾压面试官!

冰河

MySQL 面试 精通MySQL SELECT查询流程 查询缓存

基于docker的分布式性能测试框架功能验证(二)

FunTester

分布式 性能测试 接口测试 测试框架 测试开发

2021Java开发现状分析,给大家安排上!

Geek_f90455

Java 程序员 后端

docker入门:postgresql安装及可视化界面portainer使用

小黄鸡1992

8月日更

【Flutter 专题】132 图解 PaginatedDataTable 分页表格

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

架构实战营 - 模块四作业

思梦乐

Druid 的几个查询实例

HoneyMoose

Python代码阅读(第1篇):列表映射后的平均值

Felix

Python 编程 Code Programing 阅读代码

Druid 从控制台(Druid console)中删除过滤器和运行查询

HoneyMoose

基于ECS快速搭建 Docker 环境

若尘

Docker 服务器 8月日更

索信达控股:银行4.0的AI世界——开启算法力的时代

索信达控股

人工智能 金融科技 银行

kafka SpringBoot

Rubble

kafka springboot 8月日更

Rust从0到1-模式-可反驳性

rust 模式 Patterns Refutability 可反驳性

分布式性能测试框架用例方案设想(二)

FunTester

分布式 性能测试 接口测试 测试框架 测试开发

2021Java大厂高频面试题,原理+实战+视频+源码

Geek_f90455

Java 程序员 后端

synchronized 优化手段之锁膨胀机制!

王磊

Java 并发 8月日更

netty系列之:netty初探

程序那些事

Java 响应式编程 Netty nio 程序那些事

手撸二叉树之对称二叉树

HelloWorld杰少

算法和数据结构 8月日更

多语言ASR?没有什么听不懂,15种语言我全都要

华为云开发者社区

语言 ASR 多语言ASR 单语模型 Conformer

一文带你搞定AOP切面

华为云开发者社区

spring aop 切面编程 面向切面编程 切面

深度学习中的分布式训练

OPPO数智技术

人工智能 深度学习

Druid 从控制台(Druid console)中查询字段

HoneyMoose

Druid 通过 dsql 运行的时候提示错误 urllib2

HoneyMoose

Android开发:App点击跳转到网页的实现

三掌柜

8月日更

Python OpenCV 图像区域轮廓标记,可用于框选各种小纸条

梦想橡皮擦

8月日更

【Maven技术专题】如何使用Assembly插件实现自定义打包

浩宇天尚

maven assembly 8月日更

Flutter 自动化测试

Flutter 自动化测试

表单设计:一页只做一件事(三)-InfoQ