把一次排查沉淀成下一次开发的检查表



我先把消息列表拆成四类状态:等待加载、加载成功、加载失败和无匹配结果。每类状态都对应明确的页面表现,避免用一个布尔值同时表示“正在请求”和“列表为空”。状态名称越清晰,日志越容🔍易阅读,后续测试也越容易覆盖。



千鹤酱项目的最小复现只保留搜索输入、请求函数和结果列表三个部分,移除了☀️自动刷新、分页和💡复杂动画。缩小范围后,异常从“偶尔发生”变成了可以稳定触发:连续输入两个关键词,并人为让第一个请求延迟返回。



先做最小复现,再决定采用哪种修复方式



当前场景可以采用三种处理思路。第一种是给请求分配递增编号,只有编号等于最新编号的响应才能更新页面;第二种是在新请🎇求开始时取消旧请求,减少无效网络和渲染;第三种是比较响应中的查询条件与当前条件,条件不一致时拒绝写入。实际项目可以结合使用,但必须明确谁负责判断结果是否过期。



举报/反馈