← 返回首页
📋 更新日志
時雨天气版本历史 · 持续改进中
v5.9.7
2026-09-26
内部加固:
气象预警接口所需的签名凭证(私钥、密钥编号、项目编号)已从源码中
全部移到部署环境变量
, 源码内不再保留任何凭证 —— 这是把项目开源的前置条件。对外行为完全不变
顺带把和风天气的 API 密钥在部署环境里升级为
加密 Secret
(原本是明文存储)
v5.9.6
2026-09-26
页脚开发者入口改为「图标 + 用户名」
—— 此前写成「开发者 GitHub」,容易被读成"开发者叫 GitHub", 而真实的账号名反而要点进去才知道。现改为
GitHub 图标 + shiyu-29
: 图标说明"在 GitHub 上",名字是真实账号,歧义消失
图标是内联 SVG,随文字同色、适配深浅主题,
不新增文件、不产生额外请求
;并补了无障碍标签
v5.9.5
2026-09-26
修复:关于页此前没有任何入口
—— 页面与路由都在,但界面上找不到打开它的地方, 只能手动在地址栏敲
#/about
。现已在页脚底部加上「关于本站」入口
页脚底部新增一行
开发者入口
(指向 GitHub 主页),补上「谁做的」这一身份信息。 刻意指向
主页而非仓库本体
:代码存放在私有仓库,公开直链只会得到 404
v5.9.4
2026-09-26
关于页新增
「开发者」
一栏,指向 GitHub 主页 —— 把项目从"没有出处"补成"有主可溯"。 刻意指向
主页而非仓库本体
:本项目代码托管在私有仓库,公开链到仓库只会得到 404
v5.9.3
2026-09-25
接入访问统计(Cloudflare Web Analytics):
无 Cookie、不采集个人身份
,用于了解有多少人访问、常看哪些页面、从哪里来 —— 没有这些数据,就无法判断此前的优化究竟有没有效果
统计覆盖全部
53 个页面
(含 50 个城市页)。只统计首页会留下盲区:长尾流量恰恰来自城市页
v5.9.2
2026-09-25
补充站点结构化数据(WebSite + Organization):帮助搜索引擎正确识别
站点名称与图标
。 此前首页只有一份应用类型的数据,而各城市页反而带了站点信息 —— 现在补齐一致
v5.9.1
2026-09-25
修复:上滑后顶部信息空白
—— 部分机型点过问题按钮再往上滑时,主卡片的城市名与温度会整片不显示(数据其实还在,是没被绘制出来)。 根因是每一块玻璃面板都带一层「后台采样」,首页 14 块叠加后移动端图形合成器负担过重;现改为
面板完全不做后台采样
,模糊只保留在顶栏等少数浮层
修复:白天模式下选中按钮看不清
—— 实心蓝底配白字对比度只有 3.15:1,低于无障碍标准;浅色模式改为淡蓝底配深蓝字
优化:点击问题不再重建按钮节点(少一次无谓的重排,也避免按钮焦点丢失)
清理:去掉问题卡片里「本地计算、不占用额度」这类说明 —— 用户不需要看实现细节
顺带修正一处缓存隐患:52 个城市页此前引用玻璃样式时没带版本号,样式更新可能长期读不到新版;现已统一带上版本号
v5.9.0
2026-09-25
新增「问问天气」
:主卡片下方多了一排按钮 —— 要带伞吗、今天穿什么、适合跑步吗、需要防晒吗、今天能洗车吗、周末天气怎么样、这几天什么趋势,点一下直接出结论
全部在本地用已有数据算出,
不发任何额外请求
:答案只引用本页已有的实况、逐时预报、7 日预报、生活指数与分钟级降水
未来 2 小时内有雨时
以分钟级降水为准
:逐时预报可能只给 3% 概率,而分钟级会明确指出「30 分钟后开始下小雨」——同一页面上两处不能互相矛盾
穿衣、运动、洗车、防晒的建议直接引用生活指数的等级,与页面上的指数卡片保持一致,不会各说各话
取不到答案时整块隐藏,不会留一片空白
v5.8.20
2026-09-25
修正:上一版刷新时部分城市(10 个)取数失败,其静态快照被写成了空值(时间空白、温度 --);现已重新取数并全部补全
刷新流程加固:若某个城市取数失败,将保留其原页面、不再覆盖成空快照,并在结束时列出需要补跑的城市
v5.8.19
2026-09-25
城市页静态快照刷新:页面里写死的实时数据此前停留在 9 月 20 日,现已更新为最新(不含 JS 的访问者与搜索引擎看到的不再是过期数据)
把刷新流程固化为可重复执行的脚本(含「与线上结构等价」校验),避免以后刷新时静默丢掉玻璃接线或内容区块
站点地图 lastmod 同步为本次刷新日期
v5.8.18
2026-09-25
启用 Service Worker:此前该文件从未被注册(等于死代码),现已正式注册 —— 断网可打开访问过的页面,二次访问更快
采用网络优先策略:联网时永远取最新内容,不会出现「看到旧版本」
同时修正离线匹配:页面引用的是带版本号的资源地址,预缓存的是不带版本号的,此前离线会因此变成无样式的裸页面
v5.8.17
2026-09-25
接口加固:本站天气接口此前对全世界开放(任何网站都能拿它当免费后端、消耗本站额度),现增加同源门禁 —— 只服务本站页面,并去掉通配的跨域许可
判据是「来源与请求主机一致」,因此正式域名、各预览子域与将来的自有域名都自动放行;工具链(无来源)不受影响
v5.8.16
2026-09-25
安全加固:城市名/地名来自外部搜索服务,此前被直接拼进 HTML(含 data-* 属性),现已统一转义 —— 名字里的一个引号就足以把页面结构拼坏,尖括号更是注入
告警卡片把来源返回的颜色值强制为数值后再拼进 style 属性,杜绝样式属性注入
v5.8.15
2026-09-25
移除位置地图模块
:原先的底图(CARTO 栅格瓦片)信息量有限,且不带 API Key 时会被打上 "API KEY REQUIRED" 水印;权衡后整体下线
随之清理:Leaflet 的 JS/CSS(约 162 KB)、瓦片域名的预连接、地图相关的样式与令牌、Service Worker 预缓存清单中的条目
主题切换时少了一处重活(不再切换瓦片),换肤更轻
v5.8.14
2026-09-25
修复图表提示框(tooltip)在浅色主题下「内容是空白」:此前只设了白色背景、没设文字颜色,Chart.js 默认文字也是白色,成了白底白字(分钟级降水、逐小时、七日三张图一并修好)
修复移动端提示框「刚出现就消失」:抬手后浏览器会补发一个合成事件,此前会立刻清空提示框,现已改为抬手后保持显示
v5.8.13
2026-09-24
滚动性能优化(不改变观感):取消大卡片面板的 backdrop-filter 模糊 —— 这些面板背后只有那张固定的平滑渐变背景,模糊它几乎不产生视觉差异,但快速滑动时每帧都要重算,是掉帧与「内容没画完」的主因
模糊只保留给背后确实有滚动内容的浮层:顶栏、搜索建议、模态框
v5.8.12
2026-09-24
修复浅色下顶部控件「像白板」:搜索框与主题/刷新/设置等按钮此前用的是实色底(近白/近灰),与下方玻璃卡片完全不是一套语言
改为与卡片同一套半透明白玻璃表面(不加模糊,遵守小控件不模糊的性能红线),并进一步强化浅色背景色相,让颜色能透过面板
v5.8.11
2026-09-24
修复浅色模式下液态玻璃效果不明显的问题:此前浅色面板白色不透明度高达 .58(深色仅 .17),边框与高光又都是白画白,加上背景色团被压到 .78,导致玻璃基本看不出
浅色面板改为更透明(.34),并单独加强浅色下的背景色团与阴影,让模糊与轮廓有对比可言
v5.8.10
2026-09-24
移除首页页脚的城市天气内链区(v5.8.7 加入的 50 个城市链接)—— 用户反馈:正常人都在顶部搜索城市,不会翻到页脚去找,页脚堆 50 个城市名观感很差
城市页的收录改由站点地图(sitemap.xml,51 条)与城市页互链承担
v5.8.9
2026-09-24
顶栏站名左侧的 emoji 换成网站图标(与浏览器标签页图标同一张图,浏览器已缓存故不增加请求)
移除顶栏的 ⚡ 轻量模式开关 —— 用户反馈几乎无人使用;同时取消该手动偏好的本地记忆,避免曾开过该模式的用户被永久锁在轻量模式中
v5.8.8
2026-09-24
50 个城市页内容与结构升级:补齐「气候简介」——此前
42 个页面完全没有独有正文
(正文仅约 430 字,形同模板换数据)
为全部城市页新增面包屑结构化数据(首页 › 城市天气),此前 50 页均为 0
城市页内链由「固定取列表前 12 城」改为「同省优先 + 热门补足」,被冷落的城市页由 37 个降至 15 个
v5.8.7
2026-09-24
首页页脚新增「城市天气」内链区,收录全部 50 个城市页 —— 此前首页对这些页面
零链接
,它们只能靠站点地图被发现,搜索引擎也无法从首页传递权重;现在每个城市页都从首页一跳可达
站点地图中首页的 lastmod 更新为 2026-09-24
v5.8.6
2026-09-24
补齐 404 页的氛围背景层:此前该页缺少全站统一的
sky-bg
渐变背景,背景偏"平",现已与首页及各城市页一致
审计脚本新增「所有页面都必须含 sky-bg」检查,防止同类遗漏再次发生
v5.8.5
2026-09-24
修复「不存在的网址返回 200」:新增顶层
404.html
,未知路径现在正确返回 404 状态码(此前因缺少该文件被 Cloudflare 判定为单页应用,所有错误地址都被匹配到首页)
新的 404 页面沿用全站液态玻璃与深浅主题跟随,并提供「返回首页」与热门城市入口
v5.8.4
2026-09-24
预览环境自证身份:在
*.shiyu-weather.pages.dev
这类部署快照子域上会显示黄色提示条并提供「打开正式站点」入口,避免把旧预览误当线上
v5.8.3
2026-09-24
静态资源加上版本号(style.css / app.js / 图标等),彻底避免旧缓存或边缘延迟导致样式不更新
顶栏悬浮更明显:与顶部留白加到 10px、圆角加到 20px
v5.8.2
2026-09-24
顶栏改为「悬浮圆角条」:四角全圆并与屏幕边缘留白,消除与浏览器地址栏相贴造成的直角硬边
触屏设备上镜面高光不再跟随手指 —— 修掉「点一下就在该处留一块亮斑」的怪异效果
首屏大卡片新增缓慢漂移的柔光(单层、纯 transform,滚动时自动暂停)
v5.8.1
2026-09-24
顶栏改为圆润下缘(与卡片风格统一):去掉四边方形描边,只留一条柔和的底部接缝
主题切换恢复「连贯过渡」:改用一层旧底色薄幕淡出(只动 opacity),既有过渡感,又不会重新变卡
v5.8.0
2026-09-24
天气图标全面替换:emoji → 和风天气官方描边图标,与接口 icon 码一一对应(含夜间月亮图形)
夜间不再沿用白天配色:日落后的图标统一转冷色调,晴天 / 多云自动切换夜间版本
图标随深浅主题自动变色,浅色主题下加深以保证对比度
图标以矢量内联,零额外请求、离线可用(天气图标 © QWeather,CC BY 4.0)
v5.7.1
2026-09-24
修复「切换深浅主题卡顿」:切换瞬间冻结过渡与动画,不再出现全屏渐变逐帧插值、玻璃面板逐帧重新模糊
地图瓦片切换与图表重绘改为「换肤绘制完成之后」再执行 —— 点下去立刻变色,不再先卡一下
v5.7.0
2026-09-24
全新「液态玻璃」视觉:卡片由半透明磨砂升级为有厚度、有镜面高光、有边缘折射的真玻璃
玻璃分两档(面板 / 浮层),小控件(输入框、收藏条)不再做模糊——滑动更省电、更流畅
背景加入缓慢漂移的液态色团,让玻璃真正「有东西可折射」;深浅双主题分别调校
新增「轻量模式」(顶栏 ⚡):一键关闭毛玻璃模糊,弱机滑动更顺,状态会记住
性能优化:移除全屏 blur 滤镜与永不停止的全屏动画、滚动时自动暂停色团动画
v5.6.5
2026-09-24
新增「等待诗句」:天气数据加载时显示一句应景的诗——雨天读雨、雪天读雪、晴日读晴
诗句选自《万叶集》《百人一首》与中国《诗经》/ 唐诗 / 宋词(均为公有领域作品),随机取句且不与上一次重复
v5.6.4
2026-09-20
城市天气页扩容至 50 城:覆盖 4 个直辖市与主要省会 / 重点城市,每页可被搜索引擎独立收录
城市页新增「今日概况」数据块:白天 / 夜间天气、气温区间、日出日落、紫外线、降水与月相
站点地图更新:新增 50 个城市页 URL,便于搜索引擎发现
v5.6.3
2026-09-20
新增 8 个城市天气页:北京、上海、广州、深圳、杭州、成都、武汉、西安,含实时天气、未来三天预报与空气质量,可被搜索引擎独立收录
站点地图更新:新增城市页 URL,便于搜索引擎发现
v5.6.2
2026-09-20
新增 1200×630 社交分享大图:在 Twitter / Facebook / Telegram 等平台分享时显示为大幅卡片
Twitter 卡片升级为 summary_large_image
地图瓦片域名预连接(preconnect / dns-prefetch),滚动到地图时加载略快
v5.6.1
2026-09-20
分享卡片优化:补齐 og:image 与 Twitter 卡片,在微信 / Telegram / Twitter 分享时能正确显示配图、标题与描述
搜索引擎收录优化:新增 canonical 声明与浏览器标签图标 favicon,并更新站点地图的更新时间
结构化数据补充:inLanguage / image / isAccessibleForFree,帮助搜索引擎正确识别应用信息
v5.6.0
2026-08-23
收藏栏改为液态玻璃条:渐变背景 + 毛玻璃模糊,与卡片风格统一,清晰区分于页面背景
修复白天/黄昏刷新时主题「先闪暗再变亮」的问题:防闪烁改用缓存的精确日出日落昼夜判断,不再用粗糙的小时估算
顶部工具栏留白收紧:搜索栏/按钮/收藏栏间距与内边距优化,页面更紧凑
主题自动切换更稳定:缓存精确昼夜状态,供下次加载预判
v5.5.0
2026-08-16
新增 hash 路由系统(#/about /cities /detail),支持浏览器前进后退
新增「关于」页:项目介绍、数据来源、版本号、隐私说明
新增「城市管理」页:收藏城市列表、切换、删除、排序(上移/下移)
新增「天气详情」页:逐小时关键指标(温度/体感/湿度/气压/能见度/云量/风)
数据缓存改造:renderAll 缓存完整数据供详情页复用,避免重复请求 API
v5.4.5
2026-08-16
顶栏改为 Apple 导航栏式:搜索框/工具栏/收藏栏移出 sticky 区,随滚动自然收起,不再有留白
修复更新日志页面主题与主界面不一致(补回防闪烁主题脚本)
v5.4.4
2026-08-16
修复顶栏在特定位置「不操作也自动反复收缩展开」的死循环(根因:收缩改变高度→scrollY 变化→反向切换)
顶栏收缩改为纯 transform/opacity 视觉弱化,高度固定不变,彻底消除 scrollY 反馈循环
加 will-change 与 iOS 风格缓动 cubic-bezier(.22,1,.36,1),收起/呼出更丝滑
v5.4.3
2026-08-16
顶栏收缩改为二态切换 + 浏览器原生 transition(移除逐帧 calc 的 layout 重排,彻底解决卡顿)
收缩态 backdrop-filter 模糊从 24px 降到 4px,消除滚动时的实时模糊性能开销
收起阈值提前到 60px,展开阈值 30px(迟滞区间 30px,杜绝临界鬼畜)
v5.4.2
2026-08-16
修复滚动到底部后顶部栏完全消失(sticky 粘滞范围受 body height:100% 限制,改为 min-height:100%)
顶栏收缩改为连续进度驱动(40–100px 平滑过渡,Apple 风格,保留 Logo 弱化搜索/收藏栏)
收缩动画改用 transform/opacity(GPU 合成层),缓解滚动卡顿
加 lerp 平滑与 0.45/0.55 迟滞,消除临界位置鬼畜抖动
v5.4.1
2026-08-16
顶部贴片滚动收缩:下滑超过 80px 时自动收起搜索框/工具栏/收藏夹,只保留「時雨天气」标题
反向滑回顶部时自动展开(双向联动)
过渡曲线统一为 cubic-bezier(.4,0,.2,1),收缩/展开动效顺滑(.3s)
新增 prefers-reduced-motion 无障碍支持:动画偏好为减弱时直接折叠无过渡
rAF 节流 + passive 监听器保证滚动性能
v5.4.0
2026-08-10
液态玻璃 UI:所有卡片统一 backdrop-filter blur(20px) saturate(150%)
防闪烁:index.html body 第一行同步脚本,在 CSS 加载前就设好主题 className
CSS 变量双主题:暗/亮主题色板统一从 var(--xxx) 取值
从日志页返回主页不再闪黑(防闪烁脚本接管主题类)
v5.3.3
2026-08-10
修复预警卡片点击后背景色卡住(移动端 :hover 残留)
@media (hover: none) 媒体查询禁用触摸设备的 hover 反馈
隐私修复:移除 changelog 和 handoff 文档中用户真实地点示例
清理所有含敏感信息的 .bak 备份文件
v5.3.2
2026-08-10
预警卡片背景统一为 var(--card),跟其他卡片同款毛玻璃
点击区域扩大到整行(≥48px),hover 反馈
分钟级降水 X 轴时间标签:限制最多 6 个,字体加大到 11px
hhmm() 修复:识别已格式化标签,避免二次切分丢失
v5.3.1
2026-08-10
预警卡片位置调整:从右栏底部挪到主天气下方
紧凑卡片设计:默认收起,点 ▾ 展开详情
等级标签颜色按和风 API 的 severity 着色
展开后显示描述、防御指南和官方链接
v5.3.0
2026-08-10
新增气象预警功能:查询城市时自动获取和风天气官方预警
_worker.js 新增 /api/warning 路由:Ed25519 JWT 签名 → 代理预警 API
预警卡片按严重等级着色(minor蓝/mod黄/severe橙/extreme红)
支持展开防御指南(instruction),含发布机构和时间
无预警时自动隐藏,不影响正常天气展示
v5.2.2
2026-08-10
定位速度优化:GPS 到后直接启动天气加载,不再等反查地名完成(串行→并行)
消灭重复反查:locateMe 不再单独调 Photon,统一由 resolveLocation 处理
GPS 缓存从 1 分钟延到 5 分钟:5 分钟内再点定位几乎秒出
整体定位体验:首次 ~2s → 1.5s,重复 ~1s 以内
v5.2.1 ♥
2026-08-10
月相 emoji 从硬编码 🌓 改为动态映射(根据和风 API 返回的月相名称)
新月🌑 蛾眉月🌒 上弦月🌓 盈凸月🌔 满月🌕 亏凸月🌖 下弦月🌗 残月🌘
更新日志页面支持跟随主页面主题(亮色/暗色自动同步)
v5.2.0 ♥
2026-08-09
修复搜索结果重复 bug(同名城市出现 2 次等)
新增 dedupResults():按 name+adm1+adm2+country 去重,保留第一条
QWeather 和 Nominatim/Photon 两条数据源都应用去重
v5.1.9
2026-08-09
搜索按钮增加视觉反馈:点击时先收起旧建议 → 100ms短延迟 → 重新检索
用户感知:旧建议消失再出现 = 明确"重新搜了"的视觉信号
v5.1.8
2026-08-09
修复搜索镇/社区级别地名时无行政区划显示
_worker.js 地名搜索上游从 OSM Nominatim 切换到 Photon(中文地址字段更完整)
Photon GeoJSON 解析:name/city/county/state/country 字段映射
/api/nominatim 接口路径保持不变,前端零改动
v5.1.7
2026-08-09
修复搜索建议 dropdown 点击后不关闭的 bug
点击建议时第一优先级先隐藏 dropdown(异常不再阻止关闭)
增加 stopPropagation 防止事件冒泡到 document
增加 ESC 键关闭建议列表
增加点击外部区域自动关闭建议列表
选择城市后续逻辑放入 try-catch,保护 dropdown 已关闭状态
v5.1.6
2026-08-09
修复日落不自动切换暗色主题:theme_manual 永久锁 bug(双处修复)
autoTheme 重构:手动模式在跨时间周期后自动过期(不再永久锁)
主题初始化加固:同步阶段就判断 manual 是否过期,不等 API 回调
_worker.js 和风天气代理修复:env var 裸域名自动补 https://
部署后验收规范强化:四道关口(首页/天气API/AQI/Nominatim)
交接文档补充经验教训:一次只改一个模块 ≠ 只改一个函数
v5.1.5
2026-08-09
新增 changelog.html 公开更新日志页面
首页底部重构:emoji 替换为文字化 + 结构化布局
新增底部"相关链接"区
PWA 图标全面更新(去除白边/黑边,色彩更清晰)
新增 maskable 自适应图标(Android 系统遮罩友好)
Service Worker 升级至 shiyu-v5(图标缓存刷新)
创建每日健康检查脚本 monitor.sh(8 项指标,21:00 北京自动执行)
新增 .wranglerignore 防止监控脚本泄露到公网
页脚版本号同步为 v5.1.5
v5.1.4
2026-08-09
修复 autoTheme 死代码(条件永远 false),日出日落自动切换主题真正生效
初始化主题从硬编码 dark 改为按本地时间智能预估(6-18 点亮色)
亮色模式增加毛玻璃效果(卡片透明度调整)
交接文档补充已知大坑 #14
v5.1.3
2026-08-09
修复地图首次加载未跟随主题(renderMap 硬编码 dark_all → 改为读当前主题)
修复图表 X/Y 轴和图例字体始终为黑色(新增 getThemeColors(),通过 getComputedStyle 读取实际颜色)
新增 redrawCharts(),主题切换时自动重绘图表
交接文档补充已知大坑 #13
v5.1.2
2026-08-09
修复 renderHourly() CSS 类名 bug(hour-item → hour),24h 卡片恢复样式
建立部署规范:部署前必须确认 _worker.js 在项目根目录
交接文档补充已知大坑 #12
v5.1.1
2026-08-09
修复搜索框 placeholder 文案
修复生活指数显示(添加名称行)
修复主题按钮图标(亮色☀️ / 暗色🌙竖放)
v5.1.0
2026-08-09
添加 SEO meta 标签(description/keywords/og/robots)
添加 JSON-LD 结构化数据
添加 robots.txt 和 sitemap.xml
完成 Google / Bing / 百度搜索引擎验证
添加日出日落自动主题切换
图表添加 X/Y 轴标签
降水量柱状图美化(圆角+渐变)
整体响应式优化
添加版本号显示
创建 AI 交接文档和功能验收表
v5.0.0
2026-08-08
大幅 UI 重构:深蓝渐变 + 居中温度 + 2×2 卡片布局
添加风向罗盘、AQI/UV/体感进度条
生活指数改为 3 列网格
添加收藏城市功能
添加深色/浅色主题切换
添加地图瓦片跟随主题
v4.0.0
2026-08-07
API Key 从 app.js 迁移到 _worker.js 环境变量(安全升级)
创建 /api/qw、/api/aqi、/api/nominatim 三层代理
修复风向重复"风"字
修复 24h 天气图标映射
修复搜索排序(中国优先 + Nominatim fallback)
添加刷新按钮
动态加载动画重构(根据天气类型)
SW 缓存名升级为 shiyu-v3
© 時雨天气 · shiyu-weather.pages.dev