KotodamaJournal
工程札记心情 · 清醒Blueprint

同域多站:明暗偏好也要分户

官网同一域名下挂着博客、组件文档等静态站。有人一边开着 Blog 墨面,一边开着文档亮色,切其中一个,另一个页签的明暗也会跟着跳。乍看像缓存坏了,其实是浏览器按「源」共享本地存储,两站又写了同一把钥匙。

怎么互踢的

两站都基于同一类文档框架,明暗偏好默认落在同一个存储键上,并且监听跨页签的存储变更。任一页签写入,其它同源页签里的监听器都会更新,于是主题被同步——哪怕路径一个是博客、一个是组件文档。

博客自己还有纸面/墨面的独立记忆,但切换时仍会顺手同步框架那一层,等于把「分户账」又写回「共用账本」。

怎么分户的

在框架主题脚本跑起来之前,往页面头部注入一段很薄的隔离逻辑:

  • 把框架认的那把默认钥匙,映射到站点自己的命名空间(博客一把,文档一把)。
  • 读写、删除都走映射后的键。
  • 跨页签事件也只认自家命名空间,再伪装成框架期望的键名交给原有逻辑。

这样:同站多个页签仍可同步明暗(这通常是想要的);跨站点不再互踢。旧键里若已有偏好,首次访问会迁到新键,减少用户感觉「突然重置」。

还要心里有数的

同域还会共享登录态、以及低代码一类的本地数据库。登录共享多半是产品预期;低代码多页签同编一份草稿,仍可能后写覆盖——那是另一类隔离,要用频道锁或文档分叉,不是换一个主题键能解决的。

静态多站挂在同一域名下图省事时,记得问一句:哪些状态该全家共享,哪些必须分户。明暗偏好,显然属于后者。