HTML无法直接发放积分或徽章,必须通过后端写入数据库并由前端调用接口触发;前端需校验接口成功响应后才更新UI,禁用DOM属性或meta标签存储可信数据,徽章优先使用内联SVG。

HTML里没法直接发积分或徽章
浏览器不执行奖励逻辑,HTML只是静态结构。所谓“发放”必须靠后端写入数据库、前端调用接口触发,或者用 JavaScript 模拟展示(但不真实生效)。常见错误是把 <span>+10 积分</span> 当成已发放——这只是文字,服务器根本不知道发生了什么。
前端怎么安全地提示“任务已完成”
用户点击后,应先确认后端返回成功响应,再更新 UI。不要仅靠按钮禁用或文字变色来“假装完成”。
- 用
fetch调用类似/api/tasks/complete?id=123的接口,检查响应状态码和data.success === true - 成功后才显示
<div class="reward-badge">✅ 已获 50 积分</div>,并可加个data-earned="50"供后续统计 - 避免在 URL 里拼接敏感参数,比如
?reward=50&user_id=xxx—— 这容易被篡改
为什么不能用 <meta> 或自定义属性存积分
<meta name="points" content="100"> 或 <div data-points="100"> 看起来方便,但完全不可信。用户按 F12 就能改,刷新就丢,且无法跨设备同步。这类标记只适合做临时渲染参考,绝不能作为数据源。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
- 真实积分必须存在服务端,比如 PostgreSQL 的
users.points字段或 Redis 的user:789:score - 前端每次需要显示积分时,应主动请求
/api/users/me获取最新值,而不是读 DOM - 如果离线场景强,可用
localStorage缓存,但必须带服务端校验机制(比如每次上线后比对并修正)
徽章图标用图片还是 CSS 实现
小徽章优先用 SVG 内联或字体图标(如 <i class="icon-badge"></i>),别用 PNG。SVG 清晰、可缩放、体积小;PNG 在高 DPI 屏幕上会模糊,且每个徽章都要 HTTP 请求。
立即学习“前端免费学习笔记(深入)”;
- 内联 SVG 示例:
<svg class="badge" viewBox="0 0 24 24"><path d="M12..." /></svg> - 避免用背景图方式实现徽章,否则无法选中、无障碍支持差、打印时可能丢失
- 如果徽章有动态状态(如“本周活跃”),需后端返回对应 class 名,比如
badge-active-week,再由 CSS 控制样式


















