相片页面的保存、预览与删除流程
相片页面将“文件列表”“图片读取”“浏览器缓存”和“服务端删除”分成不同阶段。理解这四层可以避免把缩略图问题误判成文件丢失。
读取列表
打开页面后先读取当前账号的文件名列表。列表为空时:
- 确认账号和 Token;
- 刷新一次;
- 检查是否是新账号或没有生成相片;
- 不要立即删除或恢复缓存。
列表请求成功但单张图片失败时,保留文件名并单独显示失败状态。
预览图片
点击缩略图后按需读取原图。预览时:
- 检查当前账号和文件名;
- 等待图片读取;
- 关闭预览释放临时对象;
- 需要留档时使用下载按钮;
- 分享前遮挡账号、二维码、用户和现场信息。
占位图、懒加载延迟或浏览器缓存失败不代表服务端文件不存在。可以清除本地图片缓存后重新读取,但清除缓存不会修复服务端文件。
下载留档
下载前确认:
- 文件来自当前列表;
- 当前账号正确;
- 浏览器允许下载;
- 保存位置受保护;
- 文件名不会覆盖另一张重要图片。
下载后记录时间和大小,不需要把图片上传到错误收集服务。相片可能包含个人信息和现场设备,按敏感数据保存。
删除单张
推荐顺序:
- 下载需要保留的图片;
- 刷新列表;
- 选择目标文件;
- 显示文件名和预览摘要;
- 二次确认;
- 删除一次;
- 重新读取列表。
删除请求超时后不要自动重试。刷新列表后目标不存在,可以按已删除处理;仍存在时再由用户决定是否重试。
删除全部
删除全部相片是高风险不可逆动作。确认框必须明确写“全部相片”,并建议用户先下载留档。不要把删除全部实现成无提示的循环单张删除,也不要在列表读取失败时把空列表当作“没有文件”。
浏览器缓存
浏览器缓存可能保存缩略图或临时对象:
- 清除缓存只影响当前设备;
- 不会删除服务端文件;
- 也不能替代下载备份;
- 切换账号时要清理旧页面数据,避免显示旧图片。
常见问题
列表有文件但缩略图空白
检查单张读取响应的 Content-Type、网络和文件名编码。重新打开页面一次;不要删除文件。
下载得到错误页
客户端可能把 JSON 错误或 HTML 错误页保存成文件。检查状态码和 Content-Type,重新调用下载,不要把错误页当相片留档。
删除后仍显示缩略图
可能是浏览器缓存。刷新列表并清理本地图片缓存;如果列表仍有文件,再向管理员反馈。
切换账号后看到上一账号的图片
停止旧账号请求,清空页面状态和对象 URL,重新读取新账号列表。不要依靠浏览器刷新前的缩略图判断归属。
验收清单
- [ ] 空列表和请求失败文案不同;
- [ ] 缩略图失败不清除文件名;
- [ ] 下载前显示目标文件;
- [ ] 删除单张有二次确认;
- [ ] 删除全部有明确范围;
- [ ] 超时后不会自动重复删除;
- [ ] 账号切换不会复用旧图片;
- [ ] 截图和下载文件已按隐私要求处理。
