CHAPTER 01 / WRITINGFIELD NOTE 33
换页时,什么不该从头来过
播放器、草稿与偏好并不属于某一张页面;它们属于访客正在进行的事情。
向下阅读
一个音乐播放器可以固定在网站右下角,看起来像「全站常驻」。但视觉上的固定不等于生命周期上的常驻。若每次点击链接都让浏览器整页重新加载,音频节点仍会被销毁,歌曲也会中断。
先画状态的边界
哪些状态属于页面?当前展开的折叠面板、某个筛选器,通常可以随页面离开。哪些状态属于整个站点?音乐播放、语言偏好和未完成的长任务,往往不该因为浏览了另一页就重置。
在 React 应用中,这意味着把跨页状态放在不会随路由切换而卸载的位置。但组件放对了位置还不够:站内链接也要走客户端导航。一个普通的整页跳转,仍会把整棵组件树重新创建。
保留不等于永远恢复
刷新浏览器和真正离站是另一种边界。可以保存音量与「用户主动暂停过」的偏好,却不该未经新交互就擅自恢复有声播放。技术上能记住时间点,也不意味着浏览器允许自动发声。
所以连续性需要分层:站内切换尽量无缝;完整刷新后保留可安全恢复的偏好;跨站授权或离开页面时,明确承认声音可能中断。
用返回键做一次验收
测试播放器时,不要只点播放和暂停。试试进入文章、打开登录页、按返回、切换语言、再回到曲目清单。真正的漏洞通常藏在这些路线交叉处,而不是播放器本身。