实验 09 · 35 分钟 · 入门

让作品回应用户

制作一个能输入、勾选、本地保存并安全清空的一周实践计划器。

本课产物
practice-planner.html
学习方式
边做边检查

完成后你能

本课目标

  • 设计输入、反馈与持久化闭环
  • 使用 localStorage 保存本机进度
  • 为破坏性操作提供撤销路径

开始前

准备这些

  • 新建 09-interactive-artifact 文件夹
  • 写下本周三个可在 15–60 分钟完成的实践任务

01 · 画出交互状态

先不写代码,列出用户动作和页面回应:添加任务→列表出现;勾选→进度更新;刷新→状态保留;清空→可撤销。

如果只描述静态页面,Agent 很容易忘记刷新、空输入、重复点击等状态。

示例
空列表 → 输入任务 → 添加成功 → 勾选完成 → 刷新保留
                         ↘ 清空全部 → 5 秒内撤销

02 · 生成可用的计划器

把成功路径与失败路径一次写清,能减少交互完成后再补状态的返工。

复制给 Agent
请在 09-interactive-artifact 中创建 practice-planner.html,做一个“一周 AI 实践计划器”。

功能:输入任务名称和预计分钟数;添加到本周列表;勾选完成;实时显示“已完成 x / 共 y 项”;使用 localStorage 保存任务与完成状态;刷新页面后恢复。
边界:空任务不能添加并显示就地错误;分钟数限制 15–180;重复点击添加不能产生两条相同记录;所有表单控件有 label;Enter 可以提交;状态变化用 aria-live 简短播报。
清空:提供“清空全部”,执行后显示 5 秒撤销按钮;不要使用浏览器 alert 或 confirm。
视觉:一个主动作,不用渐变,不加载框架,390px 下可用。

03 · 验证本地保存

localStorage 只保存在当前浏览器与设备,不是云同步。页面应清楚告诉用户这一点,避免把本地保存写成账号功能。

  1. 添加三项任务,勾选其中一项。
  2. 刷新页面,确认三项和勾选状态都保留。
  3. 打开另一浏览器,确认它不会神奇同步。
  4. 查看页面说明是否明确写“仅保存在本机浏览器”。

04 · 跑完失败路径

交互作品的质量藏在失败路径里。逐个触发,而不是只走成功流程。

  1. 提交空任务:错误应靠近输入框,焦点仍可继续输入。
  2. 输入 5 分钟:页面应阻止并解释允许范围。
  3. 快速双击添加:不应出现重复记录。
  4. 清空后立即撤销:原任务和完成状态应恢复。
  5. 清空后等待超过 5 秒:撤销入口应消失。
复制给 Agent
请只审查 practice-planner.html 的状态逻辑。列出空输入、越界分钟、重复提交、刷新恢复、清空撤销五条测试的实际处理代码。发现缺口先报告,不要重写页面。

不要跳过

完成检查

逐项在真实页面中验证。勾选状态只保存在这台设备的浏览器中。

0 / 6 已完成

常见错误

卡住时先看这里

用 alert 报错
把错误放在对应字段旁,并保留用户输入。
把 localStorage 称为云端进度
明确它只属于当前浏览器与设备。
清空后无法恢复
暂存旧状态并提供有时限的撤销。

可选加练

再多走一步

增加按“未完成/已完成/全部”筛选,并确保刷新后任务不丢失。