E2.15.3visible upload progress and retry设计
上传进度与失败需可见可重试
别名: 上传失败重试 · upload progress · 静默上传失败
概念解释
文件离开设备之后有一段时间既不在本地也不在服务器上。这段时间必须能被看见:传了多少、是不是停了、失败了能不能再来一次。可见进度与可重试失败(visible upload progress and retry)反对「选完就转圈、失败只剩红字」或「失败了要重新挑文件」。它管的是字节在路上时的状态,不是挑文件的入口,也不是挑之前的格式说明。
机制
上传是长操作,网络会抖、会断、会被服务器拒。没有确定进度时,人分不清「还在传」和「已经死了」,会重复提交同一文件打成两份,或离开页面让请求被取消。失败若只显示「出错」而不保留已选文件,重试等于再搜索一遍目录,大文件尤其残酷。进度要把「这个文件」绑定到条上:多文件时一条总进度会掩盖其中一份已经失败。可重试意味着失败态仍握着那份本地引用或已切的分片,点一次继续,而不是回到空的接收区。
边界
极小文件瞬间传完,进度条会闪一下,不如直接进成功态;但失败仍要可重试。后台上传(关掉页面还在传)需要系统级任务,网页条看不见不等于没有进度,应改口说明「在通知里看」。鉴权过期、存储配额这类失败重试同一文件仍会失败,要换原因文案,不要假装再点一次就能好。读屏器需要的是状态变化播报,不是一条看不见的条。
怎么落地
- 为每个文件显示确定进度(已传字节或百分比),无法估总量时也要明确「仍在传」而不是静止转圈。
- 失败时留下文件名、原因和「重试」,不要清掉已选列表。
- 离开页面前提示未完成的上传会被取消,或改为可在后台继续并给出入口。
- 验证:用慢网络传一个大文件,中途断网,再点重试。应能从失败态继续或重传同一文件,而不必重新打开文件夹。进度在中断前必须在动;动完却没有成功或失败,就是不可见。