為提升網頁整體的豐富度,我們的網站整合了大量的高畫質視覺內容。這些內容涵蓋了詳細的車站內部導覽圖、周邊景點的高解析度相片,以及各種宣傳活動的滿版橫幅影像。豐富的媒體素材固然能夠第一時間吸引使用者的目光並提供充足的資訊,但它們同時也是現代網頁效能的隱形殺手。影像檔案通常佔據了單一網頁總下載位元組數的一半以上,如何在「保留視覺震撼力」與「維持極速載入時間」之間取得完美的平衡,成為了前端開發團隊在本次版本更新中亟待解決的核心挑戰。
在網站發布的初期,我們收到了不少來自使用者的反饋,抱怨網頁開啟的速度過於緩慢,尤其是在使用行動網路的情境下。為了找出問題癥結,我們利用 Lighthouse 效能檢測工具進行了全面性的稽核。報告結果顯示,我們在「最大內容繪製(Largest Contentful Paint, LCP)」這項關鍵指標上遭遇了嚴重的挫敗。深入分析後發現了兩個致命的實作盲點:首先,我們使用了最傳統且無壓縮優化的 JPEG 檔案格式,這些未經瘦身的影像體積過於肥大;更糟糕的是,所有散佈在頁面底部(Offscreen)的影像,在使用者初次打開網頁的瞬間,就與首屏的關鍵內容一起擠進了瀏覽器的下載佇列中。這導致了網路頻寬嚴重堵塞,主執行緒被迫等待這些當下根本看不見的影像載入,進而將首頁文字與重要互動元件的呈現時間大幅向後推遲。
針對 LCP 效能崩壞的問題,我們制定了一套雙管齊下的影像重構計畫。第一個策略是全面導入次世代的影像壓縮格式。我們摒棄了傳統的 JPEG 與 PNG,改為採用 WebP 與 AVIF 格式。這些現代格式能在肉眼無法察覺畫質損失的前提下,將檔案體積大幅縮減 30% 到 50% 以上。第二個策略則是實作「延遲載入(Lazy Loading)」機制。我們利用了 HTML5 原生提供的 loading="lazy" 屬性,搭配 <picture> 標籤來進行條件式資源分發。透過這個改動,瀏覽器現在變得更加聰明,它會優先載入螢幕可視範圍(Viewport)內的關鍵影像。至於那些隱藏在頁面下方、需要滾動才會出現的圖片,瀏覽器則會刻意推遲它們的下載時機,直到使用者即坐在滑動到該區塊時,才在背景默默啟動網路請求。這徹底釋放了初始載入時的頻寬壓力。
<!-- 坑:使用傳統格式,且未考慮延遲載入,阻塞首屏渲染 -->
<div class="station-map-section">
<h3>車站內部導覽</h3>
<img
src="/images/maps/station-layout-heavy.jpg"
alt="車站詳細導覽圖"
>
</div>
<!-- 解法:採用現代格式 (WebP) 搭配原生 loading="lazy" -->
<div class="station-map-section">
<h3>車站內部導覽</h3>
<picture>
<!-- 優先提供體積更小的 WebP 格式 -->
<source srcset="/images/maps/station-layout.webp" type="image/webp">
<!-- 降級方案,並加入延遲載入屬性 -->
<img
src="/images/maps/station-layout-optimized.jpg"
alt="車站詳細導覽圖"
loading="lazy"
width="800"
height="600"
>
</picture>
</div>
這次影像處理機制的深度改造,為終端使用者帶來了前所未有的流暢體驗。最直接的感受是「隨點即開」的快感:由於頻寬不再被螢幕外的龐大圖片所霸佔,網站的首屏內容(包括文字、導覽列與最重要的即時資訊)幾乎能在瞬間完成渲染,大大降低了使用者等待時的焦躁感。對於那些身處網路訊號不佳區域,或是使用流量受限方案的行動裝置使用者而言,這更是一大福音。因為只有當他們確實向下捲動頁面、真正對那些影像產生興趣時,系統才會消耗流量去下載。當使用者滑動頁面時,圖片會隨著視角的推進平滑地浮現,整個互動過程感覺輕盈且毫無負擔。我們不僅成功達標了綠色的 LCP 核心網頁指標,更在無形中為使用者節省了寶貴的數據費用,真正做到了效能與體驗的雙贏。