·
Following 第二頁修好了 + 兩處快取陷阱清掃 | 4.28
Following 翻頁不再串入 explore,話題廣場和提示訊息的快取污染也修好了
| Following 第二頁修好了 + 兩處快取陷阱清掃 | 4.28 |
Pickful 社群朋友們,
根據大家的反饋,今天又帶來了幾處修復——其中最關鍵的一處是:Following 流第二頁起出現你沒關注的人——已經修好。同步還清掃了上一輪 CDN 修復(公告 #117)之後冒出來的兩個同根變體。
🐛 Following 第二頁起串入 Explore 流
有同學反饋:滑到 Following 第二頁之後,開始出現自己根本沒關注的人發的貼文。第一頁是乾淨的、關注誰就只看到誰。
排查下來是個分頁路由 bug:
第一頁由 controller 直接拉資料,套用的是「關注列表 + 你自己」的篩選;但負責產生「下一頁」連結的 helper 漏寫了 Following 這個分支,於是「下一頁」的請求悄悄跳去了 /posts?page=2——也就是 Explore 的第二頁。Explore 流什麼人都有,你就看到了一堆陌生人。
修復後,Following 流不管第幾頁都老老實實只回傳你關注的人 + 你自己的貼文。
⚡ 提示訊息不再串場
我們把一些公開頁面(幣種頁、話題列表、搜尋結果等)放到 CDN 加速。問題是:登入使用者做完一個動作(例如按讚、收藏)後會有一條「操作成功」的提示訊息,這條提示也被 CDN 一起快取下來。結果下一個未登入訪客打開同一個 URL,會看到上個使用者的提示——「操作成功」「請先登入」之類——莫名其妙。
修復思路:當回應帶有提示訊息時,自動把快取策略降級成「不快取」——這條回應只屬於當下這個使用者,CDN 不再保存。沒有提示訊息的正常回應仍然走 CDN 加速,效能沒有損失。
順手把所有被 CDN 快取的頁面都接了一個前端注水機制:你的按讚、收藏、被你封鎖的使用者、可管理話題等個人化狀態,都會在拿到 CDN 快取的 HTML 之後再即時抓一次更新。這樣快取版本不再決定你看到的狀態。
➕ 話題廣場的「+ 新話題」按鈕
跟上一輪的「Content missing」是同一根因:/topics 也是 CDN 快取的,但頁面上有兩個依登入狀態 / 客戶端分支的「建立新話題」按鈕——一旦未登入(或 App 原生殼)使用者先訪問,快取裡就沒有這兩個按鈕,登入使用者進來也看不到,點不開建立新話題頁。
修復辦法和上一輪一致:把依登入狀態分支的部分挪到不被快取的個人化端點,CDN 快取的 HTML 永遠是同一份;按鈕在拿到真實 session 後才渲染。同時英文版標題從 “Topics Square” 縮成 “Topics”,行動版 Web 不再因為標題太長換行。
🧹 順手:移除 Sentry
我們之前用 Sentry 做錯誤監控,但很久前就遷移到自家的內部觀測堆疊了,Sentry 一直沒在使用。這次把 gem、初始化檔和 CSP 白名單一併清掉,工程依賴少兩個。對你完全無感,純內部整理。
💬 致社群
這幾個 bug 大多來自社群反饋或我們自己的複盤——Following 第二頁是使用者直接告訴我們的,話題廣場按鈕也是使用者用著用著發現的。這種細節反饋非常寶貴,請繼續告訴我們。
此次修復已在 Web、iOS、Android 三端同步上線,無需更新 App 即可使用。
Pickful 團隊
2026 年 4 月 28 日
Repost this post?
Share with your followers.
Reply