场域手记
NEXTFIELD / FIELD NOTESI — 前端
CHAPTER 01 / WRITINGFIELD NOTE 34

每日图案,为什么没有每天变

日期参与了生成,不代表页面会在午夜自动重新计算。

前端2026-09-241 分钟阅读

向下阅读

给日期做一个哈希,再用结果排列圆形、颜色和角度,就能得到「同一天相同、不同天不同」的图案。算法没问题,却很容易漏掉更前面的一个问题:日期是在什么时候被读取的?

构建时的今天

如果首页被静态构建,生成页面时读到的日期会被写进输出。部署之后,即使到了第二天,访客拿到的仍是那份已经生成好的页面。刷新浏览器只会重新请求同一份内容,不会重新执行构建时的代码。

「每日」在这里描述的是输入规则,不是交付频率。只有重新构建,或者改成请求时生成、客户端计算、按日重新验证等策略,画面才会真正随日历变化。

换一种策略,也会换来新问题

客户端计算可以立即追随访客本地日期,却可能与服务器先输出的画面不一致。请求时计算能统一结果,却需要服务端参与。按日缓存更新较轻,但要说明时区和刷新时刻。

因此,先定产品规则:以哪个时区为准?午夜是否必须准点更换?离线时展示哪一天?确定这些,再选渲染方式,比先写随机函数更可靠。

对当前版本保持诚实

如果页面还靠手动重新构建,说明文字就不该暗示它会自动在午夜改变。一个小小的日期图案,最后考验的不是数学,而是界面对自己运行方式的诚实程度。