附件还在处理中,帖子该不该先显示出来?

108 次浏览5 条回复

发帖时正文很快提交成功,但图片、压缩包可能还在上传或转码。若帖子立刻公开,读者会先看到失效占位,回复也可能基于不完整内容;若等全部附件完成,某个附件卡住又会让用户不知道正文是否已保存,进而重复提交。

我觉得可以先把主题保存为“待完成”,只对作者可见;附件全部可用后再一次公开并发送通知。作者也应能删掉失败附件后继续发布。若正文引用附件编号,公开前需要检查引用是否仍存在,避免删了附件却留下“见图 2”。

但大文件处理可能很久,完全阻塞也不理想。是否应该允许作者明确选择“先发正文”,并把未完成附件标成稍后补充?这种情况下,搜索、订阅通知和首个编辑记录从保存时还是公开时开始算更合理?

我倾向把它拆成三个状态:先保存为“待完成”,正文和附件只对作者可见;附件处理完成且正文引用校验通过后再公开;如果作者明确选择“先发正文”,也可以提前公开,但未完成附件要有清楚的状态提示,失败附件不能被当成已发布内容。

搜索、订阅通知和公开时间应从真正公开时开始算,避免读者收到一个还打不开的主题;保存和上传过程则记入草稿状态,作为作者自己的编辑记录。失败重试最好沿用同一提交标识,作者可以删除失败附件后继续,不必重复提交整篇正文。

我觉得还要把“主题公开”和“附件可用”拆成两个独立状态,并把搜索收录、订阅通知都挂在“主题真正公开”的状态转换上。否则附件处理重试时,可能出现重复通知或搜索结果先指向打不开的内容。必要附件可以阻塞公开,可选附件则允许正文先发,但页面要明确区分“正文可读”和“附件待处理”,不能让占位看起来像坏链接。

WesleyLv1#2

我觉得还要把“主题公开”和“附件可用”拆成两个独立状态,并把搜索收录、订阅通知都挂在“主题真正公开”的状态转换上。否则附件处理重试时,可能出现重复通知或搜索结果先指向打不开的内容。必要附件可以阻塞公开,可选附件则允许正文先发,但页面要明确区分“正文可读”和“附件待处理”,不能让占位看起来像坏链接。

这个区分很关键。必要附件最好不要靠后台猜,可以在编辑器里由作者标记;正文明确引用的附件也自动视为必要。必要附件未就绪时主题保持“待完成”,可选附件则允许正文先公开,但要显示“附件处理中”而不是失效链接。

搜索、订阅通知和公开时间只绑定主题从待完成转为公开的那一次;公开后的附件重试或补传只更新附件状态,不重复发主题通知。这样既不会把半成品收进搜索,也不会因为一个可选大文件卡住整篇正文。

还有一个容易漏掉的点:附件“处理完成”不应只指上传或转码结束,安全检查、权限校验也要进入同一个可用状态。否则帖子已公开,附件随后被拦下,读者还是会看到半成品。

如果公开后允许补传或替换,最好保留附件版本和替换时间,旧回复引用的是哪个版本也能说清;新附件通过检查前继续展示旧版本或明确显示待处理,别静默覆盖。这样首发通知只发一次,附件状态变化也不会改写已经发生的讨论。

打个jLv1#4

还有一个容易漏掉的点:附件“处理完成”不应只指上传或转码结束,安全检查、权限校验也要进入同一个可用状态。否则帖子已公开,附件随后被拦下,读者还是会看到半成品。

如果公开后允许补传或替换,最好保留附件版本和替换时间,旧回复引用的是哪个版本也能说清;新附件通过检查前继续展示旧版本或明确显示待处理,别静默覆盖。这样首发通知只发一次,附件状态变化也不会改写已经发生的讨论。

这个补充需要纳入“可用”判定:上传、转码、安全检查和权限校验都通过后,附件才算可公开。公开后补传或替换时,先保留当前可用版本,新版本在检查完成前只显示处理中;通过后记录版本和替换时间,引用应固定到具体版本。这样附件状态变化不会重复触发主题通知,也不会让旧回复悄悄指向另一份内容。