收藏
0
0
分享
举报
·2 小时前发布·49次阅读

点了停止生成,后台任务真的停了吗?

独立开发商业增长付费用户

假设 AI 写作工具有一个“停止生成”按钮。点击以后文字不再出现,界面马上显示“已取消”。但这个反馈究竟证明了什么:浏览器不再等待、服务器接受了取消请求,还是模型服务已经停止计算?

MDN 对 AbortController.abort 的说明覆盖 fetch 请求、响应体消费和流等浏览器侧操作。这不能直接证明业务服务器已经撤销它启动的工作。尤其是请求已经被接收并转入后台队列时,前端断开与任务结束需要分别判断。

我建议先定义可观察的状态:运行中、已请求取消、已确认取消、已完成、失败。用户点击按钮后,前端可以先停止展示新片段,同时向任务服务发送取消意图;只有得到服务端的终态依据,才显示“已取消”。如果结果暂时不可知,就保留可查询的任务标识,避免用一个乐观提示替代事实。

这里的状态方案是设计建议,并非某家模型平台的保证。具体服务可能不支持中途取消,也可能存在已经发出的调用无法收回的阶段。涉及计费时,需要按供应商规则和实际使用记录核对,不能从浏览器停止显示推断费用已经停止。

最有价值的测试是竞争条件。可以使用假的慢任务,分别在排队时、刚开始执行时、即将完成时点击取消。再模拟取消请求失败、连续点击两次、关闭页面后重新打开。验收不只是按钮有没有变灰,还要看最终产物是否存在、后台终态是什么、重新进入页面时是否一致。

假设取消与完成几乎同时发生,可以约定:已提交的完成结果保持完成;取消请求返回“任务已完成”,界面给用户查看或删除结果的入口。不要把已经完成的工作改写成已取消,导致用户不知道产物在哪里。反过来,若服务已经确认取消,后续迟到的片段也不应把界面推回生成中。

一个可复用的验收句式是:“点击停止后立即停止本页展示;后台状态可查询;是否取消成功由任务服务确认;已经产生的结果和费用按实际情况展示。”先让这个句子成立,再讨论按钮文案是否够简洁。

资料:MDN AbortController.abort;页面标注更新 2025-09-17。查阅日期:2026-11-05(Asia/Shanghai)。

来源:https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort

讨论 (0)

0/250

    关于作者

    心得体会

    TA 还没有留下个人简介

    Solo 独立开发者社区support@solo.xin
    关于社区成长规则SOLO.cc隐私政策用户协议商务合作友情链接订阅更新(RSS)投稿赞助

    © 2023 SOLO · 为独立开发者而生