跳到正文

进度条

Progress

初级通用

进度条(Progress)是用一条逐渐填充的轨道,表示任务已完成多少或仍在进行的界面元素。它让你在上传文件、导出报表等耗时操作中,看出任务没有停住,并在进度可计算时估计还要等多久。

你可能会说:「用户上传文件后,我想让他看到传到哪儿了,而不是一直盯着空白页面等。」

动手看看

上传文件
季度销售报表.xlsx文件大小 8.4 MB
已上传 72%
正在上传,暂无法估算
请勿关闭页面
进度类型
填充节奏

切换进度类型,看看同一份文件在两种上传状态下怎么提示等待;调整填充时长或节奏会自动重播,也可以点重播再看一次。

能算出进度时,填充长度对应已完成的 72%。重播只是演示这段填充动画,不代表文件又上传了一次。

要点

  1. 1

    先分清进度能否计算

    上传文件时,如果能拿到已传字节数和总字节数,就可以显示百分比。若后台只返回“正在处理”,我们就只能显示持续活动的进度条,别让填充长度暗示一个并不存在的完成比例。

  2. 2

    说清正在处理什么任务

    同一页面可能同时有上传和解析。把“上传文件”和“解析内容”写在对应进度条旁边,用户才知道数字指向哪件事;任务完成或失败后,再换成明确的结果信息。

  3. 3

    让进度跟真实状态同步

    如果进度条很快走到满格,后台却还在生成结果,用户会以为页面卡住了。我们可以把上传与后续处理分开呈现;处理阶段没有可靠比例时,就改为提示正在处理。

容易混淆的地方

进度条讲的是一个任务推进了多少,步骤条讲的是流程走到哪一步,比如注册流程到了“验证邮箱”。旋转加载指示器只表达“还在忙”,适合没有进度信息的短暂等待;如果要让用户看见上传的完成比例,用进度条更合适。

什么时候用

适合用

  • 用户上传视频到网站,前端能获取已上传字节数和文件总大小,可以显示上传百分比。
  • 后台批量导出订单,服务端能返回已处理数量和总数量,用户可以据此判断还要等多久。
  • AI 工具正在处理一份长文档,暂时算不出完成比例,但需要持续表明任务仍在运行。

不适合用

  • 页面只是短暂读取一张卡片的数据,没有可感知的长任务,用骨架屏呈现内容结构更合适。
  • 用户正在填写分三步完成的开户表单,想知道自己走到哪一步,用步骤条而不是进度条。
  • 点击按钮后只是等待一次很快结束的请求,没有可报告的任务进度,用按钮内的旋转加载指示器即可。

练一练

你在做报表导出功能:服务端只能告诉前端“正在生成”或“已完成”,不能提供已处理数量。点击导出后可能需要等一会儿,你会怎样设计等待状态?

让 AI 帮你做

请为报表导出任务设计进度条:如果接口返回已处理数和总数,就显示真实百分比;如果只返回运行状态,就显示不带百分比的持续活动状态。标明“正在生成报表”,完成后提供下载入口,失败后显示错误和重试操作。

接下来学什么