什麼是前端開發領域的 Page Blink 和 Page Flicker

我做了一段時間的 Angular 之後,聽到同事們處理 Github issue 時,偶爾會提到 Page Blink 這個名詞。

例如這個:

可以看出如果一個 Angular 應用缺乏 ngrx store,緩存以及 SSR Transfer State 等機制,就容易出現 Page Blink 的問題。

以及我們在 Github 的代碼倉庫裏收到其他開發者報的一個 issue

這個問題在 3G 網絡下尤其明顯:


Page blink 指的是在前端開發中,當頁面重新加載或導航到新的URL時,瀏覽器中的頁面會短暫地"閃爍"或"白屏"的現象。

這種現象的出現主要是因爲瀏覽器在重新渲染頁面時需要重新加載 CSS、JavaScript和其他資源文件,這個過程會導致頁面上的所有內容都被刪除,然後再重新繪製。當瀏覽器加載資源的時間很長時,頁面就會出現明顯的白屏或閃爍現象。

爲了避免這種現象的出現,開發者們通常會採取一些優化策略,比如使用預加載、預渲染等技術,以儘可能減少重新加載資源所需的時間,並儘可能減少頁面的白屏時間。另外,一些框架和庫(如React、Vue等)也提供了一些優化機制,可以在頁面重新渲染時儘可能地減少閃爍和白屏現象的出現。?

Page flicker 則是另一個概念:Page flicker指的是在前端開發中,當頁面加載時,由於CSS樣式或JavaScript腳本的加載順序等原因,頁面上的元素會在加載完成前閃爍或跳動的現象。

通常情況下,當瀏覽器開始加載頁面時,會先加載HTML內容,然後再加載CSS樣式和JavaScript腳本等資源。如果CSS樣式或JavaScript腳本的加載順序不正確,或者它們的加載時間過長,就可能導致頁面上的元素出現閃爍或跳動的現象。這種現象在用戶體驗上會產生一定的負面影響,降低用戶對網站的滿意度。

爲了避免Page flicker現象的出現,開發者們通常會採取一些優化策略。比如,將CSS樣式表放在文檔頭部,將JavaScript腳本放在文檔底部等等,這些策略可以最大限度地減少Page flicker的發生。

總之,Page flicker是前端開發中一個常見的問題,需要通過合理的優化策略來避免它的出現,從而提升用戶體驗。

Spartacus 曾經修復過的一個 Page Flicker 的問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章