整理-前端三十

閱讀時間約 4 分鐘

HTML

async & defer

  傳統 HTML 在解讀時,到了 <script> 便會暫停並執行 JS 直到完成後繼續解析。
為了避免這一情況發生,最簡單暴力的方式就是把 JS 連結放置在最下方。
而後來為了避免這種卡住的狀況,
HTML 4 新增了 defer 屬性
HTML 5 新增了 async 屬性
defer = true
當瀏覽器解析到 JS 連結時,defer 屬性會讓瀏覽器繼續執行同時下載所需資源,最後解析結束後才會依序執行 JS。
async = true
async 雖然跟 defer 一樣會同時下載所需資源,但不同的是 async 會在下載完成時立刻暫停 HTML 的解析,開始執行 JS ,結束後繼續 HTML 的解析。
type = "module"
主流現代瀏覽器中還能透過 type = "moudule" 來聲明此 JS 是獨立模組,這時這個 JS 的解析行為會像 defer 一樣,背景下載,等待解析完成才執行 JS 。
可以更改 async 屬性。
defer 會無法生效。

CSS

Reflow & Repaint

Reflow & Repaint 是 CSS中影響效能的兩個因素
以下的行為會觸發 Reflow
  • 設定CSS屬性
      大小﹑浮動﹑定位 等等...
  • 使用者進行互動
      調整視窗大小﹑輸入框的內容變更
  • JavaScript
      DOM操作﹑動態載入CSS﹑獲取元素的 Layout 相關屬性
Repaint 為渲染行為,Layout 計算完畢後,會執行 Paint 。
只要是螢幕上的實際像素產生變化便會觸發 Repaint。
瀏覽器是如何優化效能的
因為 Layout 的計算相當花費資源,所以設計者設下規則,當 Reflow 時,瀏覽器會自動批次執行
而當 DOM 元素被觸發變化時,瀏覽器會自動根據變化省略不需要的步驟。
EX.
  • width 變化 : 先 Reflow 後 Repaint
  • color 變化 : 跳過 Reflow,直接進入 Repaint  
常見的優化方法如下
屬性替換
  • 用 translate 代替 top﹑right等定位屬性
  • 表格的物理屬性會互相影響,進而觸發 Reflow,所以避免使用 table 進行排版
批次修改
使用 JS 修改 CSS 時,盡量設定為批次修改
  • 替換 class name 或修改 cssText,而不是對 DOM 的 style 屬性逐條設定
  • 透過 el.cloneNode() 複製一份 DOM,複製的 DOM 修改樣式後,替換原本的 DOM
  • 透過 document.createDocumentFragment() 建立 Docment Fragments,編輯 DOM 後再加回 DOM tree 中
減少影響範圍
  • 避免 DOM﹑CSSOM tree 的層級過深,加快 Layout 計算
  • 透過 JS 取得 DOM 屬性時,先暫存起來,不要重複觸發 Reflow
  • 變化頻繁的地方建立單獨的圖層( Stacking Context ),降低 Reflow 計算複雜度

z-index & Stacking Context

當 postition 屬性變動時就會產生一個新的 CSS 堆疊環境 ( Stacking Context )而堆疊環境內 CSS 樣式改變時,不會觸發其他堆疊環境的 Reflow 。
瀏覽器在渲染時,Render Tree 會在計算 Layout﹑Paint 後,
產生各個堆疊環境 ( 類似圖層 ) 而後將 堆疊環境 合成。
其中的 Layout﹑Paint 的計算會發生在各自的堆疊環境中。
z-index 也是在堆疊環境中計算的,所以 z-index 無法影響其他堆疊環境
會建立堆疊環境的行為
  • 根元素 <html></html>
  • position 設置為 firxed or sticky
  • postition 設置為 relative or absolute && 有設置 z-index
  • 有設置 transform 屬性
  • opacity < 1
另外 DevTools 中的 Layers 頁籤可以確認目前頁面的圖層

元素選取器的運作

CSSOM Tree

JS

FE

BE

WEB

    0會員
    2內容數
    留言0
    查看全部
    發表第一個留言支持創作者!
    苦苦Man的沙龍 的其他內容
    寫下自己的思考 「 又跳...又跳...又又跳針!!! 」 這大概是我這幾年最深刻的體悟。 雖然腦子無時無刻都有新的想法,但永遠都是起了個頭,馬上又被其他想法牽走,然後不了了之。這其中很多都是對於自己的規劃,常常決定要做一件事,隔天就忘記,然後過幾天又開始思考同一件事,無限跳針。 尤其是現在
    寫下自己的思考 「 又跳...又跳...又又跳針!!! 」 這大概是我這幾年最深刻的體悟。 雖然腦子無時無刻都有新的想法,但永遠都是起了個頭,馬上又被其他想法牽走,然後不了了之。這其中很多都是對於自己的規劃,常常決定要做一件事,隔天就忘記,然後過幾天又開始思考同一件事,無限跳針。 尤其是現在
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    攝類學,源自古印度,不僅用於解析佛教經典,更是一種強化邏輯和辯證技能的學問。透過嚴謹的邏輯分析,這門學問不限於佛教徒,對任何尋求提高思考能力的人都是一種寶貴的訓練。它幫助學習者精確分析信息,提升表達和問題解決能力,適用於各個學科和職業領域,是提升智慧和深度思考的理想工具。
    Thumbnail
    以前考試最愛買參考書,參考書的編排通常是重點精華+題目+詳解。 不愛讀課本,只看重點精華就去做題目,以為這樣可以節省時間,做題目的時候模模糊糊,A好像也對,C看起來也很像...,根本沒搞清楚基本原理,又要重頭念一次。 才發現重點要自己整理,整理的過程是釐清內容和鞏固記憶最重要的環節。 整理是一
    Thumbnail
    今天整理了一些舊東西—CD、書法字練習。 CD收藏品已經是好久以前收藏的了,當時喜好跟現在已經不一樣,現在想想該收拾好,清空空間的時候了,所以就拍照留念,記錄在方格子上,把物品處理掉。 首先是無印良品解散時發行的紀念專輯,記得這好像是我哥買的,後來送給我,當時一聽就很喜歡他
    Thumbnail
    【Factset美股財報前瞻:金融業 (Q1 2024) AI整理與分析】看起來美股銀行業到2025年會好一些,金融業也是整體經濟重要的一環,可能等降息後,存款利息的壓力小一些獲利才會改善。 原文參考連結 --- █整理: ▌總體展望 金融業將是未來兩周市場關注的焦點,
    Thumbnail
    萬事起頭難,能下定決心開始整理,跨出第一步,真的很不容易。 但是,如何讓自己有堅持下去的動力,直到整理完畢,達到理想的狀態呢? 如果你是個容易半途而廢的人,或是常常做事三分鐘熱度,那麼這篇文章將會給你很大的幫助。 以下是我根據自身的斷捨離經驗,和這幾年來練習極簡生活的體悟,得出7個讓你獲得動力
    Thumbnail
    說不清楚的,就用圖解讓人一看就懂。這是我在《高產出的本事》中提到的一個觀點。比起美感、技巧,視覺化圖解更重要的是你有沒有想法?然後,我們需要的是將你的想法轉化為具體可見的技巧。而這本《韓國企劃女神CCC思考整理術》就是在告訴我們這項技巧,透過三個步驟,九張圖解工具,就能將想法變現、讓人秒懂!
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    攝類學,源自古印度,不僅用於解析佛教經典,更是一種強化邏輯和辯證技能的學問。透過嚴謹的邏輯分析,這門學問不限於佛教徒,對任何尋求提高思考能力的人都是一種寶貴的訓練。它幫助學習者精確分析信息,提升表達和問題解決能力,適用於各個學科和職業領域,是提升智慧和深度思考的理想工具。
    Thumbnail
    以前考試最愛買參考書,參考書的編排通常是重點精華+題目+詳解。 不愛讀課本,只看重點精華就去做題目,以為這樣可以節省時間,做題目的時候模模糊糊,A好像也對,C看起來也很像...,根本沒搞清楚基本原理,又要重頭念一次。 才發現重點要自己整理,整理的過程是釐清內容和鞏固記憶最重要的環節。 整理是一
    Thumbnail
    今天整理了一些舊東西—CD、書法字練習。 CD收藏品已經是好久以前收藏的了,當時喜好跟現在已經不一樣,現在想想該收拾好,清空空間的時候了,所以就拍照留念,記錄在方格子上,把物品處理掉。 首先是無印良品解散時發行的紀念專輯,記得這好像是我哥買的,後來送給我,當時一聽就很喜歡他
    Thumbnail
    【Factset美股財報前瞻:金融業 (Q1 2024) AI整理與分析】看起來美股銀行業到2025年會好一些,金融業也是整體經濟重要的一環,可能等降息後,存款利息的壓力小一些獲利才會改善。 原文參考連結 --- █整理: ▌總體展望 金融業將是未來兩周市場關注的焦點,
    Thumbnail
    萬事起頭難,能下定決心開始整理,跨出第一步,真的很不容易。 但是,如何讓自己有堅持下去的動力,直到整理完畢,達到理想的狀態呢? 如果你是個容易半途而廢的人,或是常常做事三分鐘熱度,那麼這篇文章將會給你很大的幫助。 以下是我根據自身的斷捨離經驗,和這幾年來練習極簡生活的體悟,得出7個讓你獲得動力
    Thumbnail
    說不清楚的,就用圖解讓人一看就懂。這是我在《高產出的本事》中提到的一個觀點。比起美感、技巧,視覺化圖解更重要的是你有沒有想法?然後,我們需要的是將你的想法轉化為具體可見的技巧。而這本《韓國企劃女神CCC思考整理術》就是在告訴我們這項技巧,透過三個步驟,九張圖解工具,就能將想法變現、讓人秒懂!