發布日期:2025 年 11 月 21 日
過去,Target.com 的瀏覽器支援服務主要以支援所有在 Target.com 上購物的消費者為基礎。這項政策會在重大決策點有所變更,例如完全停止支援 Internet Explorer,或是指定特定最低版本的瀏覽器,以取得高價值功能。視需要每隔幾年進行一次。
Target.com 對於要鎖定的瀏覽器和功能沒有漸進式政策,因此只能在程式碼集使用現代功能,並採用 polyfill 和轉譯等笨拙的解決方案,將 JavaScript 轉譯為非常舊的版本。WebDX 社群群組推出 Baseline 時,Target.com 的利害關係人認為時機合適,開始思考如何找出更合適的最低支援目標。
有了 Baseline,Target 現在就能確切掌握支援的瀏覽器提供哪些功能,並盡可能透過漸進式強化和 Polyfill 做為備援,找出可用的最新功能。
問題
每天都有數十名工程師為 Target.com 貢獻程式碼。在程式碼審查中,常見的做法是使用「我可以使用」做為資源,指出不支援 Target.com 支援的瀏覽器版本的功能。如果工程師不斷收到留言,要求他們變更程式碼,優先使用舊版功能而非新版功能,就會導致他們避開新的網頁功能。Target 接著會改用「舊」技術,但使用現代化功能的機會會延後到其他時間。使用新式網頁功能通常能提升開發人員體驗,而且由於程式碼較少,也能提供更優質的使用者體驗。
以數據為準的瀏覽器支援做法
Target.com 具有 webpack 設定,可定義支援的最低瀏覽器版本。過去,很難證明調高這些最低支援瀏覽器版本的合理性。2025 年初的規則如下:
- Chrome、Edge 和 Firefox 的最新版本和前兩個版本。
- Safari 11 以上版本。
由於 Target 在 iOS 裝置上透過 Safari 獲得的流量和銷售量很高,因此 Safari 受到更嚴格的對待。一開始,我們經過審慎評估後,決定將 Safari 11 設為開發的最低版本。這項決定將 Target.com 限制在 2017 年之前提供的網頁功能。
在 Target 將 Baseline 整合至開發工作流程的第一步,他們採用了資料導向方法。Target 的研究結果顯示,Safari 11 到 14 版對業務的影響非常小,具體來說,在 Target.com 上的需求銷售量僅占 0.0001%。有鑑於此,Target 認為移除這些舊版瀏覽器的轉譯和 Polyfill,可大幅提升網站效能。
其他研究顯示,Safari 15.4 是第一個至少帶來 0.5% 需求銷售量的 Safari 版本,之後的每個 Safari 15 次要版本都有類似影響。Target 每次執行 A/B 測試時,只要需求銷售額有 0.5% 的變化,就非常值得參考,因此我們得出結論,Safari 的最低支援版本應為 15 左右。
這項研究發現一個有趣的趨勢,那就是舊版 Safari 瀏覽器的使用率下降速度很快。截至 2024 年 9 月,Safari 15 僅占 Target.com 需求銷售額的 0.94%。2025 年 1 月,這個比例為 0.67%,2025 年 5 月進一步降至 0.45%,2025 年 11 月則為 0.32%。Target 從中瞭解到,如果以全網站需求銷售額的百分比做為實際金額門檻,就能自動終止對這些瀏覽器的支援,並在年底前支援 Safari 16 的下一個主要版本。
停止支援並不代表系統會封鎖不支援的瀏覽器,使用這些瀏覽器的人可能仍可找到購買路徑,但有時可能會遇到體驗不佳的情況。在進行變更後,分析師持續採用以數據為準的方法,並回報業務指標沒有受到可衡量的影響。Target 也在研究是否要顯示橫幅,在不支援的瀏覽器版本上顯示警告訊息,指出體驗會變差。
為 Target.com 選擇基準目標
Target 的網頁工程師成立了 Baseline 工作群組,整合這些工作,使用現代化功能和不斷變動的瀏覽器支援目標,協助推動政策。他們使用 Baseline 的工具,查看每年最低瀏覽器組合。最接近 Target 新政策的目標是 2022 年基準:
{
"chrome": "108",
"edge": "108",
"firefox": "108",
"ios": "16",
"safari": "16"
}
如要達到該基準,Target 必須將瀏覽器政策調整為至少 Safari 16,而非目前的 15.4 版。這項異動會影響不到 0.5% 的轉換購物者體驗。儘管如此,這個百分比正在縮小,因此 Target 希望在 2025 年底前更新目前的官方政策,與 2022 年的基準線掛鉤。這讓 Target.com 的開發人員可以將目標變更為每年發布的基準線後約 3 年。
整體而言,由於程式碼轉譯次數減少,且新增了 Polyfill,Target.com 的 webpack 組合包變小了。Target 相信這個目標會隨著時間推移而有所變動,希望明年此時能採用 Baseline 2023,其中包含許多實用功能,例如容器查詢、:has 選取器、inert 屬性等。
查看較新的 Baseline 功能集
Target Baseline 工作組不會在 Baseline 2022 之後停止運作,從 Baseline 2023 的功能來看,許多功能都即將支援,不需要備份 (例如 Polyfill)。Target 感興趣的 Baseline 2023 功能,都必須符合下列條件:
- 說明這項功能的用途。
- 記錄使用方式如何改善 Target.com,包括提升開發人員體驗。
- 在 Target.com 程式碼庫中找出合適的測試案例,以便實作這項功能。
- 如有必要,請記錄要使用的備援,包括漸進式增強功能,或透過功能偵測提供的其他解決方案。
- 最後,這項功能預計何時會核准使用?現在可以使用嗎?還是應該等待達到未來的某個門檻?
例如 inert 屬性。在 Safari 中使用 inert 的最低版本為 15.5,也就是說 Target.com 很快就能使用這項功能!Target.com 有許多模態實作項目,相較於目前的 JavaScript 解決方案,這項屬性可帶來許多優勢。由工程師撰寫這項功能的報告,有助於分享知識,並為下次放寬瀏覽器政策做好準備。這有助於證明,停止支援業務價值不高的瀏覽器版本,可解鎖確實有價值的功能。這項功能可以在功能標記下設計、審查及部署,並在可使用時做好準備。
此外,另一位工程師也會遵循相同程序,使用容器查詢 (現已廣泛提供做為基準)。容器查詢可搭配 Polyfill 使用,但 Polyfill 有已知的效能問題。Target 提出的解決方案是只將容器查詢做為漸進式強化功能,直到瀏覽器最低版本支援這項功能為止。
這項程序非常適合 Target.com,因為當功能達到最低版本使用量時,就不再需要漸進式強化,即可使用該功能。在最近的稽核中,我們發現 Target.com 運送了許多不必要的 Polyfill,因此在應用程式中導入 Baseline 有助於控管這類技術債。
將 Baseline 概念與網頁效能建立關聯
對任何零售網站而言,效能都很重要。在 Target.com 工作的開發人員都認為,他們傳送的 JavaScript 太多了。如果傳送給使用者的 JavaScript 套件減少 5%,這是一大進展,但對 Target.com 的網站體驗核心指標不會有顯著改善。不過,如果 Target 達成這個目標 10 次,套件大小就會減少 50%,這對 Target 的效能目標會有顯著貢獻。
以 Target 的 Baseline 做法為例,Target.com 的工程師開始思考 JavaScript 的用量,因為模態視窗、無障礙需求、彈出式視窗、輪轉介面、手風琴式介面和其他常見使用者體驗問題,都需要用到 JavaScript。這些都需要 Polyfill 或自訂 JavaScript 解決方案,導致應用程式的 JavaScript 膨脹。由於 Target 使用 Baseline,瀏覽器目標會隨著時間演進,因此可放寬政策,納入新功能。Target 預期隨著時間推移,轉譯的程式碼會越來越少,填補的功能也會減少,甚至在適當時機採用網頁元件。Target.com 專案工具鍊會注意 Polyfill 和目標瀏覽器,因此JavaScript 套件大小已減少 10%。再採用任何新功能。這項指標應會逐年改善,且與 Target 在 Target.com 效能改善方面的大膽投資直接相關。
重點整理
Target.com 運用基準目標和精心製作的基準報表,掌握新推出和廣泛推出的網站功能,成效顯著。以下是幾個重要結果:
- 瀏覽器目標已從支援 8 年前發布的瀏覽器,改為支援 3 年前發布的瀏覽器。
- 2025 年底前將達成 2022 年基準目標。
- Target.com 的 JavaScript 套件總大小已縮減 10%。
- 舊版瀏覽器帶來的業務量不到 1%,這類瀏覽器在 2024 年 9 月占 0.94%,預計 2025 年 11 月會降至 0.32%,每年減少約 300%。
Target 發現網路發展速度前所未見,因此積極採用各項功能。整理這些功能可讓 Target 預先作業和規劃,瞭解何時會解鎖各項功能,並讓工程師放心為大型零售網站貢獻心力,知道要使用哪些功能及何時可以使用。