在 GitHub Issues 里来回查看缺陷、需求和讨论,几百毫秒的等待也会不断打断思路。据 InfoQ 报道,GitHub 把更多导航工作搬到浏览器端,让已经看过的数据先从本地出现,再去后台确认更新。改造后,“即时导航”的占比从 4% 升至 22%。
核心是客户端缓存——浏览器保存已经取得的数据,避免重复向服务器索取;再配合预取,提前准备用户可能打开的内容。Service Worker(运行在网页后台、可拦截请求的脚本)负责检查本地资源,IndexedDB(浏览器内置的持久化数据库)则让缓存跨刷新保留。数据可能暂时不是最新,但系统会在后台同步。
效果并非所有页面都快了同样倍数:P10 延迟约从 600 毫秒降至 70 毫秒,中位数从 1.2 秒降至 0.7 秒,P90 仅从 2.4 秒降至 2.1 秒。这个案例的价值正在这里:缓存与预取能显著改善高频、重复的操作,但越慢的那部分体验,仍需要继续处理。