如何使用智能默认值来减少认知负担

本文探讨了在UX设计中使用智能默认值的重要性,旨在减少用户的认知负担,提高操作效率。通过预填充表单字段、根据用户数据进行个性化设置等策略,设计者可以提升用户体验,同时列举了默认值应用的案例与注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:Nick Babich

翻译 :吴祺深

欢迎访问网易云社区,了解更多网易技术产品运营经验。 

 

 

如果你问UX设计师们他们的工作目标是什么,他们可能会说,他们的目标是让用户的生活变得简便。当用户体验设计师设计一款产品,他们会尽最大努力提供能够实现最终结果的最直接的操作路径。虽然这个目标可能听起来很简单,但在现实生活中存在着许多妨碍用户达成目的的障碍。其中一个便让用户停下来思考接下来该如何进行的东西。

Steve Krug有句名言:“不要让我思考”。如果你想听从他的建议,就需要专注于减少认知负担。其中一种方法便是使用智能默认值。

 

什么是认知负担?

认知负担,是影响用户操作效率的一种特性。在UX设计中,认知负担指示了使用一个产品所需的脑力能耗。

能耗这个概念,在计算机世界中会更加清晰。大多用户都清楚,同时运行太多的程序,会使电脑变慢甚至让系统崩溃,因而当我们用完一个程序时,我们就把它关掉。而当一台电脑的性能不足以处理我们的需求时,我们就会升级这台电脑。

类似于电脑,我们人类的大脑的处理能力也是有限的。但遗憾的是,我们无法简单升级我们的大脑的性能。因而,如果我们在使用一款产品时需要密集思考(即高认知负担),我们常常就直接放弃了相应操作乃至这款产品。

产品设计师们试图通过投入时间和精力来减少用户的认知负担来让产品适应我们大脑的局限性。尽管有很多技巧可以让设计人员实现这一目标,但就本文而言,我们将专注于其中的一种方法:智能默认值。

 

什么是默认值

当用户执行一项作业时,他们会有许多关于如何操作的疑问。这些疑问的数量和认知负担之间存在着直接的联系——他们的疑问越多,认知负担就越重。

默认值即“开箱即用”的值或设置。默认值可以减轻认知负担——通过免除各种繁重的选择劳动,让作业的过程更加流畅。

默认值有多种形式。最常见的是固定的“一刀切”默认值。在知道大多数用户都会以某种特定模式回答时,设计师们会使用此类默认值。而大多数用户都会熟悉“一刀切”这种模式,因为它常见于各种安装向导之中。

在配置产品时,Dropbox将典型设置(Typical)作为默认选项

当然,还有智能默认值这种东西——对用户可能会选择什么进行的智能的预测。智能默认值是定制的默认值——应用程序会使用用户数据来精准预测他们的回答。

 

使用默认值的基本规则

要真正有效地使用默认值,需要遵循一条重要规则:确保你在帮助用户,而不是在阻碍用户。此规则即始终将默认值设置为绝大多数用户(例如,95%)在必须作出选择时会选择的选项。

在构思默认设置时,产品设计者需要了解用户的能力以及他们使用产品的环境。只有当产品团队花费足够多的时间进行了用户研究和测试,了解了用户并根据用户的历史数据和使用习惯调整了默认值时,才有可能实现这一点。

 

在表单中使用预填充的字段

在各种用户界面中,表单是排名第一的适合于使用默认值的地方。填写表格永远是枯燥无味的,特别是当它是一个很长的表格时。要求用户填写大量数据可能是他们使用竞品的好理由,因为这个过程要更加容易。

这就是为什么在表单中使用预填充对于高转化率至关重要。不管是创建帐户,进行购买还是加入某电子邮件组,用户操作体验都应尽可能平滑。

默认值对表单的完成情况有很大的影响,因为它们能减少用户的工作量。而通过提供精心设计的默认值,可以避免用户需要选择所有相关选项的麻烦。

让我们定义一些在表单中使用默认值的基本准则。

 

利用你拥有的用户信息

APP和服务器中有很多关于其使用者的数据,将这些数据用于创造更好的用户体验至关

重要。例如,假设你正在重构用于网银APP中的转账表单。用户将使用此表单向他们的朋友和家人汇款。你最初的想法可能是将“转账金额”字段留空,以便用户输入正确的值。但是在默认设置这个主题下考虑这个字段,你可能会采用不同的手法。因为你很可能拥有用户所做的历史交易记录,你可以因此转而根据以前输入的金额来提示适当的值。

 

不要向用户索取他们已经提供的数据

向用户索取他们过去已提供的数据是最常见的(也是最可怕的)UX设计错误之一。如果数据可以显而易见地在整个UI的多个位置通用,设计师应该任何抓住机会这样做。在表单字段中预加载数据并要求用户验证数据是一种更好得多的用户体验,而不是要求他们从头开始一一输入所有数据。请记住,费力的事越少越好。

 

不要在需要用户注意的控件上使用默认值

当人们与数字产品交互时,他们不会去细读——他们只会扫一眼。人们快速浏览表单,却不会花时间去思考所有的选择项。因此,当你使用数据预填充一个字段时,用户通常会认为对应问题已经有了答案而跳过它不细看。

 

如果这是一个重要的问题,这也许并不是理想的情形。这里最大的问题所在,是如果已经有预加载信息,问题本身可能根本没能在用户脑海中停留。而输入或选择的过程本身,却能迫使用户阅读并思考问题。

 

不要出于自身利益预填充控件

出于自身利益,而非用户的利益来预填充控件,通常会适得其反。例如,很少有用户会对在填写注册类表格时自动选中“订阅促销优惠”而感到开心,而这种默认选中行为也违反了GDPR合规指南

如果你持续默认选中符合你的利益,而不是用户利益的选项,你将失去用户信赖。而提升用户利益的默认值才是更好的选择。

默认设置也为所谓的“灰暗模式”提供了机会。灰暗模式常用于推升转化率,但这种奇淫巧技通常会产生可怕的用户体验,尤其是当用户注意到APP或网站试图欺骗他们时。一个例子是瑞安航空,它提供了一些在欧洲最便宜的航班,但它不断尝试让用户购买保险。

当你在瑞安航空上订机票时,这家航司会提供飞行保险选项,却隐藏了拒绝购买保险的选项。用户需要滚动列表来找到“不要保险”的选项——在丹麦和芬兰中间那个。

 

避免对敏感字段使用默认设置

如果答案可能是敏感的或政治性的,例如性别或国籍,则应避免提供默认值。预填充这些字段,很容易使用户感到不舒服乃至愤怒。

 

在表单之中使用默认值

虽然你应该已经了解了不合适使用默认值的一些情况,但在表单中的一些地方使用默认值几乎总是能帮助用户。以下便是一些例子。

 

重用付款细节

也许填写付款细节不是什么复杂的事情,但仍需要占用部分用户精力。在每次都使用同一项服务时,用户不会喜欢每次都需要填写付款细节的设计。

当今市场上的许多服务都知道重用付款细节很重要。其中一项服务便是UberEats。UberEats知道如果用户在结账流程中的付款细节可以被保存下来,他们将获得更多的订单。该服务是通过将用户最后使用的银行卡作为默认支付方式,来实现这一目的的。

 

根据用户的地理位置数据预选字段

这种默认设置与网商领域有特别的联系。APP或网站可以尝试根据用户的当前位置智能地选择地址,而不是让用户自己提供有关她/他的地址信息。

一个很好的例子是Skyscanner。当用户在搜索航班时,Skyscanner会将出发机场设置为最靠近用户当前位置的机场。

Skyscanner使用用户的位置来自动填充出发地点字段(From),因为用户是比较可能从离当前位置最近的机场出发的

类似地,如果需要询问用户的电话号码等信息,则应根据用户的位置设置默认区码。通过遵循这一规则,WhatsApp使电话号码的输入过程变得非常简单。默认情况下,国家区码是根据位置服务的信息预先填写的。

WhatsApp预填写了国家码这一栏,但在用户需要时也可以修改

 

捐赠类表单中的建议值

建议值,是一种可以帮助用户了解网站所期待响应的默认值。这种默认值的一个典型情况是捐赠类界面。 当用户看到捐赠类表单中的捐赠金额是空值的时候,大多数人将不确定

他们应该捐多少钱。然而通过提供默认值,可以使用户更惬意地完成捐赠操作。例如,Michael J. Fox Foundation提供了一系列按钮对应常见捐赠金额以作选择,并且其中一个按钮是默认选上的。当然,用户也可以根据需要设置其他金额。

很多人并不清楚典型的和适合的捐赠金额应该是多少。但通过提供一些代表性选项,设计师可以引导用户捐赠合适的金额。图引用自michaeljfox

 

搜索结果的自动填充

默认值与自动填充功能搭档,不仅可以显著提高用户的操作效率,还可以作为用户搜索某种主题时的一种提示或指引。一个很好的例子便是Twitter,它通过在搜索结果中放入建议词和匹配的用户主页的链接,让用户可以直接转到他们想访问的用户主页来提高搜索效率。

Twitter使用自动完成来提供建议结果

 

APP和网站中的默认设置

设计人员和开发人员都知道让产品开箱即用有多么重要。默认设置在此过程中起着至关重要的作用,可以说是产品创作人员需要作出的最重要的决定之一。

当产品创作人员选择了恰当的默认设置时,用户会惊喜地发现产品有多么好用。 但是,当这些默认值不适宜时,创作人员则会看到一堆关于该产品的抱怨。

 

紧箍咒般的默认设置

哈佛大学的一项研究发现,当提供默认选项时,大多数人都不会去改变它。在他的文章《用户是否更改了他们的设置?》中,Jared Spool说,根据他的观察,只有不到5%的用户会更改默认设置。

出现这种情况有两个原因。首先,做出明确决定需要精力——要更改特定设置,用户需要弄清楚这个设置的真正含义。而用户通常不愿意花费额外时间来这样做。一般来说,人们更愿意使用阻力最小的方式。此外,一些用户对改变有恐惧心理,特别是当他们不确定这些设置会如何影响产品功能时。用户通常会假定默认设置代表着最佳选择,他们会认为产品设计师已经把用户的利益最大化放在了心上。

由于人们可能会保留默认选择,因此设计人员必须确保默认值与大多数用户的想法一致。默认值应尽可能适合尽可能多的人,因此,设计人员执行以下操作非常重要:

* 研究人们会如何使用你的产品的。不要只假设用户需要什么,而是要找出他们实现目的的最佳方式并因此构思你的默认设置

* 将所有关键设置设置为最安全(也是最有用)的值。例如,默认情况下应启用文本编辑器中的自动保存等功能。

 

让用户可以轻松更改默认设置

即使你的默认设置设计得十分巧妙并且是经过了完备研究的,总有用户会想要其他东西。 当用户想要更改设置时,你的产品应该允许他们轻松地完成。例如,你的APP可能会根据位置服务的信息自动检测地点,但也应允许用户根据需要进行更改。

如上所述,自动检测当前位置节省了用户时间,但是也有用户需要选择其他位置的时候。图源:Google

提供恢复默认设置的选项 Jakob Nielsen的《用户界面设计的10个可用性启示》之一便是用户经常错误地选择了某些系统功能,而需要一个“紧急出口”来恢复原状。

这就是为什么即使是那些是经过了精心设计的用户界面也需要支持撤消和重做选项的原因。界面应支持“恢复默认值”选项,这样才可以轻松地从自定义设置返回到默认设置。 这样的选项将允许用户进行一些尝试,而无需担心破坏系统。

Google Chrome允许用户将设置恢复成默认值。

 

使用默认值来构建可用性

乍一看,默认值不过是UI中的一个看似巧妙却不起眼的元素。作为用户,我们通常不会注意到它们。但这些小东西却拥有巨大的力量。它们可以使产品的使用更加快捷,甚至影响到我们的行为。因此,在设计产品时,必须尽可能确保所有默认值有用和实用。

 

免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请点击

 

相关文章:
【推荐】 漫画解读“跨视图粒度计算”,了解有数分析利器

<think>好的,用户现在想了解在SQL中使用INSERT INTO时如何利用默认值。之前他们问过如何查询特定行,现在转向数据插入,可能是在学习数据库操作的不同方面。首先,我需要回顾用户的历史问题,确保回答的一致性和递进性。 用户的问题是关于INSERT INTO使用默认值,所以需要明确默认值的几种设置方式。可能的情况包括:表结构中的DEFAULT约束、允许NULL的列,以及数据库自动生成的默认值(如自增ID)。需要分点说明,确保结构清晰。 接下来,要考虑到用户可能的实际应用场景。例如,当他们插入数据时,某些列可能希望由数据库自动填充,比如创建时间、自增主键等。这时候使用默认值可以避免手动输入,减少错误,并提高效率。需要给出具体的例子,比如插入语句中省略某些列,或者显式指定DEFAULT关键字。 还要注意不同数据库系统的差异,比如自增列在MySQL中是AUTO_INCREMENT,而在PostgreSQL中使用SERIAL或IDENTITY,SQL Server则是IDENTITY。可能需要提及这些语法差异,但用户之前的问题中已经有一个跨数据库的表格,这里可以适当简化,避免重复,但给出示例时标明数据库类型。 另外,用户可能不清楚何时需要使用DEFAULT关键字,何时可以省略列。需要解释这两种方法的区别和适用情况。例如,如果列允许NULL且没有默认值,省略的话会自动插入NULL,但如果有默认值约束,则会使用默认值。 错误处理也是重要的部分,比如当列不允许NULL且没有默认值时,如果插入时未提供值,会导致错误。需要提醒用户注意这些潜在问题,并给出解决方案,比如修改表结构添加默认值或确保插入时提供值。 性能方面,使用默认值可以减少数据传输量,特别是在批量插入时,能提升效率。同时,默认值有助于维护数据一致性,比如自动生成时间戳,确保所有记录的时间格式统一。 最后,总结使用默认值的最佳实践,帮助用户形成良好的习惯。比如在表设计时合理设置默认值,了解数据库的自动生成机制,并在插入时根据需求选择省略列或使用DEFAULT关键字。这样用户在实际操作中就能灵活运用,避免常见错误。</think>以下是在SQL中使用`INSERT INTO`时应用默认值的详细指南,包含5种常用方法和注意事项: --- ### 一、默认值应用场景 1. **表结构定义默认值** ```sql -- 建表示例 CREATE TABLE 用户表 ( 用户ID INT PRIMARY KEY AUTO_INCREMENT, 用户名 VARCHAR(50) NOT NULL, 注册时间 DATETIME DEFAULT CURRENT_TIMESTAMP, -- 自动填充时间戳 会员等级 INT DEFAULT 1, -- 静态默认值 最后登录时间 DATETIME DEFAULT NULL -- 允许NULL值 ); ``` 2. **常见使用场景** - 自动编号(自增主键) - 时间戳记录(创建时间/更新时间) - 状态初始值(如默认会员等级) - 可选字段占位(允许NULL的列) --- ### 二、插入数据方法 #### 1. 隐式使用默认值(推荐) ```sql -- 省略带默认值的列 INSERT INTO 用户表(用户名) VALUES ('张三'); -- 结果:用户ID自增,注册时间为当前时间,会员等级=1,最后登录时间=NULL ``` #### 2. 显式指定DEFAULT关键字 ```sql -- 明确使用默认值 INSERT INTO 用户表(用户名, 会员等级) VALUES ('李四', DEFAULT); -- 结果:会员等级将使用默认值1 ``` #### 3. 混合插入方式 ```sql -- 部分使用默认值,部分自定义值 INSERT INTO 用户表(用户名, 注册时间) VALUES ('王五', '2024-01-01 10:00:00'); ``` --- ### 三、不同数据库实现对比 | **功能** | MySQL | PostgreSQL | SQL Server | |-----------------|----------------------|----------------------|---------------------| | 自增列 | `AUTO_INCREMENT` | `SERIAL` / `IDENTITY`| `IDENTITY(1,1)` | | 当前时间 | `CURRENT_TIMESTAMP` | `NOW()` | `GETDATE()` | | 默认值覆盖 | `DEFAULT` 关键字 | `DEFAULT` 关键字 | `DEFAULT` 关键字 | --- ### 四、特殊值处理 #### 1. NULL值处理 ```sql -- 显式插入NULL INSERT INTO 用户表(用户名, 最后登录时间) VALUES ('赵六', NULL); -- 隐式插入NULL(不包含该列) INSERT INTO 用户表(用户名) VALUES ('钱七'); ``` #### 2. 动态默认值 ```sql -- 使用函数作为默认值 CREATE TABLE 订单表 ( 订单ID INT IDENTITY(1,1), 创建时间 DATETIME DEFAULT GETDATE(), 修改时间 DATETIME DEFAULT GETDATE() ); ``` --- ### 五、错误解决方案 #### 1. 常见错误示例 ```sql -- 错误:未给非空且无默认值的列提供值 INSERT INTO 用户表(会员等级) VALUES (2); -- 报错:Field '用户名' doesn't have a default value -- 错误:错误使用自增值 INSERT INTO 用户表(用户ID, 用户名) VALUES (NULL, '张三'); -- MySQL允许,但其他数据库可能报错 ``` #### 2. 解决方案 1. **修改表结构** ```sql -- 添加默认值约束 ALTER TABLE 用户表 ALTER COLUMN 用户名 SET DEFAULT '匿名用户'; ``` 2. **插入时处理** ```sql -- 使用COALESCE函数处理空值 INSERT INTO 用户表(用户名) VALUES (COALESCE(NULL, DEFAULT)); ``` --- ### 六、最佳实践建议 1. **优先使用隐式插入**(省略有默认值的列) 2. **重要字段避免默认值**(如密码字段必须显式输入) 3. **时间类字段建议**: ```sql -- 创建时间使用DEFAULT -- 更新时间建议使用触发器自动更新 CREATE TRIGGER 更新时间戳 BEFORE UPDATE ON 用户表 FOR EACH ROW SET NEW.最后登录时间 = NOW(); ``` 如果需要处理更复杂的默认值场景(如条件默认值、跨表默认值等),可以具体说明需求,我会提供针对性解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值