ITSWE博客

建站日志 09-15:移动端三连修

EdgeOne 割接全绿,顺手修掉 iOS 输入聚焦整页放大、地址栏空当、跨站导航死循环三件事。

这天的大事是主站接入腾讯 EdgeOne,大陆访问从此走边缘节点。割接后全量实测:静态资产边缘命中,速度从直连美西的水平翻了几倍;登录态的头、离线缓存的头都被边缘正确尊重,没有误伤。规则里最重要的一条:动态程序文件一律不缓存,缓存键保留全部查询参数。调试也简单了,每个响应都带缓存状态头,HIT 还是 MISS 一眼可辨。

CDN 的纪律也立了:新增静态数据文件必须带版本号,不然边缘三十天缓存会把你坑到怀疑人生——文件更新了、用户看到的还是旧的,这种事发生一次就够记一辈子。

然后是移动端三连修,三个 bug 都小,三个都典型。

其一,iOS 上输入框聚焦,整页自动放大。原因是输入控件字号小于 16 像素时 Safari 会自作主张放大视口。小屏幕下统一 16px,世界清净。

其二,iOS 上页面底部多出一截空当。100vh 在移动端是按地址栏收起后的视口算的,和实际可见区域对不上,加 100dvh 兜底才对。

其三最邪门:某个内网工具在 iPhone 的浏览器里陷入重定向死循环,桌面一切正常。查下来是会话 Cookie 的 SameSite 属性设成了 Strict——WebKit 对从其他应用发起的跨站导航不回传 Strict Cookie,服务器收不到登录态就踢你重登,踢完还是收不到,死循环。改成 Lax,综合解。教训:桌面复现不了的移动端 bug,先怀疑 Cookie 策略,别怀疑人生。

一天下来,大陆访问快了,手机上顺了。这种日子没有惊心动魄,只有细水长流的“能用了”。

建站日志前端CDN
返回全部文章