实用教程

用 Claude Opus 5.5 修复商品筛选页的后退恢复

给 Claude Opus 5.5 一组浏览器操作和预期状态,再让它修复筛选恢复。保存一个筛选值只完成了一半:后退、前进、刷新和打开分享链接后,地址栏、已选控件与结果列表必须一致。

AI 编辑概念图:蓝色瓶子印稿通过赭色细线相连,连接处放着黄铜放大镜。

给 Claude Opus 5.5 一组浏览器操作和预期状态,再让它修复筛选恢复。保存一个筛选值只完成了一半:后退、前进、刷新和打开分享链接后,地址栏、已选控件与结果列表必须一致。

先说清楚“后退一步”应该回到哪里

先写一份简短的历史行为约定。假设商品目录中,用户应用“蓝色”筛选、进入商品详情、再按后退。此时应回到蓝色商品列表,而不是无筛选的目录。搜索框输入三个字,也不应默认多出三次后退,除非产品明确选择这种行为。

一则 2020 年关于查询参数的开发者提问展示了相反的困扰:每次切换标签页都成了一步历史记录。它说明需要先做交互选择,不代表所有操作都该替换当前记录。

操作本例的历史策略预期结果
编辑尚未提交的搜索词只保留本地草稿后退不会逐字回放
应用一组有意义的筛选新增一条记录后退恢复上一组已应用筛选
修正默认 URL,不改变意图替换当前记录不产生重复步骤
打开商品详情正常导航后退回到已筛选列表

让 URL 能独立还原状态

使用分类、颜色、排序等公开且不敏感的值,不把客户信息或秘密写入地址。按允许值集合解析参数,提供默认值,并规定同名参数重复时如何处理。修改筛选参数时保留无关的广告参数,不要凭记忆重建整条查询串。

下面这个虚构地址中的颜色与排序足以描述可重现的列表状态:

/products?color=blue&sort=price-asc&utm_source=newsletter

定向修改应将 color 改为 green,同时保留 sort 和 utm_source。用 URL 和 URLSearchParams 处理,不要手工拼接字符串。统一编码与解析规则,使刷新和新标签页都能重建状态,而不依赖之前页面的内存。

MDN 的 History API 指南区分了 pushState 新增记录与 replaceState 更新记录。调用它们不会替你完成界面渲染。历史遍历处理必须恢复视图,首条记录也要初始化,否则回到起点可能拿到空状态。已有路由框架时,应使用它支持的导航接口,不要再叠一套相互竞争的历史控制器。

让 Opus 按状态变化修复

修复提供的商品目录筛选恢复问题。输入包括路由版本、筛选组件、URL 解析器、请求逻辑和故障录屏。先梳理当前状态来源以及重复存储。
预期流程:无筛选目录 → 应用蓝色 → 打开商品 → 后退 → 蓝色列表 → 后退 → 无筛选列表 → 前进 → 蓝色列表。搜索草稿不能每输入一个字就新增历史。刷新和分享链接必须还原已应用状态。
保留无关查询参数。为颜色和排序设允许值,明确重复参数和非法值的处理。适用时使用现有路由接口。历史遍历时更新控件和结果,不得再新增历史记录。
处理慢请求,确保旧响应不能覆盖较新的筛选状态。提供清楚的加载和空结果状态,在正确结果出现后有意识地恢复滚动位置。
交付最小补丁和测试表,逐步记录 URL、控件、结果身份和历史位置。未执行浏览器测试不得声称通过;列明缺失的运行条件。

这是拟议的 Opus 任务,不是模型实测。官方提示词指南可帮助组织任务,不能证明补丁有效。示例 URL 的解析往返可以本地验证,真实历史和请求行为仍需浏览器测试。

在慢请求下验收恢复

分别测试刚进入详情就后退,以及等待慢响应后再后退。再连续应用蓝色和绿色:即使蓝色请求最后才结束,也不能覆盖绿色结果。可以取消过期请求,或用当前请求标识拒绝旧响应;不要靠冻结全部导航掩盖问题。

**只用 local storage 够吗?** 它能记住偏好,却不能单独定义每条历史记录或分享视图。不要让保存的偏好悄悄覆盖 URL 中明确写出的状态。

**所有筛选都用 replaceState 吗?** 那会删除本例中有意义的中间步骤。先确定产品行为,再选接口。

**这和广告链接检查一样吗?** 不一样。广告链接审查检查目的地和参数,本文检查交互后的状态恢复。

可以在 Panelly Studio制作对应商品创意,再完整测试广告落地页的浏览与返回流程。这里不声称 Panelly 已集成 Opus,也不代表 Panelly 实现了上述虚构商品目录。

资料与延伸阅读

Four panels. One ad.

让下一张广告,从这里开始。

聊聊商品、卖点和使用场景,让 Panelly 帮你创作四格广告。

开始创作 ↗查看次数包