ì¤ë¡í (Throttle)
ì¤ë¡íë§(throttling) ì ìë ì¥ì 물ì ì´ì©í´ ì ì²´ì íë¦ ìë를 ë¦ì¶ë ê²ì ì미í©ëë¤. íë¡ê·¸ëë°ììë ì´ë¤ ìì ì´ ì¼ì í ë¹ì¨ë¡ë§ ìíëëë¡ ê³¼ì ì ëë¦¬ê² íë ê²ì ë»í©ëë¤.
ì¤ë¡íë§ì ëë°ì´ì±ê³¼ ë§¤ì° ë¹ì·í©ëë¤. 주ìí ì°¨ì´ì ì í¸ì¶ì´ ì°ìí´ì ë°ìí ë, ì¤ë¡íë§ì ì¼ì í ìµë ìëë¡ ìì ì´ ìíëë ê²ì ë³´ì¥í´ 주ì§ë§, ëë°ì´ì±ì ì¼ì ìê° ëì í¸ì¶ì´ ë©ì¶ ëê¹ì§ 무íí ë기íë¤ë ì ì ëë¤.
ì¤ë¡íë§ì ëíì ì¸ ì¬ì© ì¬ë¡ë ì§ìì ì¼ë¡ ì
ë°ì´í¸ëë ë¤ë¥¸ ìíì ë기íí ëì
ëë¤. scroll ì´ë²¤í¸ë¥¼ ê°ì§íë onScrolled í¨ìê° ìë¤ê³ ê°ì í´ ë´
ìë¤. scroll ì´ë²¤í¸ë 매 í½ì
ì´ ì¤í¬ë¡¤ ë ëë§ë¤ ë°ìíë¯ë¡ í´ë¹ í¨ìë ì주 ì§§ì ê°ê²©ì¼ë¡ ê³ì í¸ì¶ë©ëë¤. ë§ì½ onScrolledê° ê³ì° ë¹ì©ì´ í° í¨ìë¼ë©´ ì´ê¸° í¸ì¶ë¤ì´ ì´íì í¸ì¶ì ì ë ì¤ííì§ ëª»íê² ë§ê±°ë, ë¤ë¥¸ ìì
ë¤ì ì¤íì ë°©í´í ì ìì´ ëì ëë ë²ë²
ê±°ë¦¼ì´ ë°ìí ì ììµëë¤. ì´ë° ê²½ì°, onScrolled를 ì¤ë¡íí´ì 매 10 ë°ë¦¬ì´ë§ë¤ ìµë í ë²ë§ í¸ì¶ëëë¡ í ì ììµëë¤.
- 첫
onScrolledí¸ì¶ì ë¦¬ë© ìì§(leading edge)ë¼ê³ ë¶ë¦ ëë¤. - ë¤ìì¼ë¡
onScrolledí¸ì¶ì´ ë§ì½ 첫 í¸ì¶ë¡ë¶í° 10 ë°ë¦¬ì´ ì´ë´ì ì´ë£¨ì´ì¡ë¤ë©´, í´ë¹ í¸ì¶ì 첫 í¸ì¶ê³¼ ê°ì "ë°°ì¹(batch)"ì ìë¤ê³ í©ëë¤. onScrolledì 첫 í¸ì¶ ì´íë¡ 10 ë°ë¦¬ì´ê° ì§ë¬ë¤ë©´, í¸ë ì¼ë§ ìì§(trailing edge)ì ëë¬í ê²ì ëë¤.
ì¼ë°ì ì¼ë¡ onScrolledë ë¦¬ë© ìì§ììë§ ì¤íëì§ë§, ê²½ì°ì ë°ë¼ í¸ë ì¼ë§ ìì§ììë ì¤íëê±°ë ì쪽 모ëìì ì¤íë기ë í©ëë¤. ë§ì½ ì쪽 모ëìì ì¤íëë¤ë©´ ì¤ë¡íë§ì 구íì ë³´íµ ì´ì í¸ë ì¼ë§ ìì§ ì´í ìµì 10 ë°ë¦¬ì´ê° ì§ëì¼ ë¤ì ë¦¬ë© ìì§ í¸ì¶ì´ ë°ìíëë¡ ë³´ì¥í©ëë¤.
ì¤ë¡íë§ì ì¬ì©íë©´ onScrolledì í¨ê³¼ë ê³ìí´ì ì
ë°ì´í¸ëê³ ì ì©ë©ëë¤. ì를 ë¤ì´, ë§ì½ documentì ì¤í¬ë¡¤ ìì¹ì ë°ë¼ ë¤ë¥¸ DOM ìì를 ì´ëìí¤ë ê²½ì°, í´ë¹ DOM ììë íì´ì§ë¥¼ ì¤í¬ë¡¤ íë ì¤ìë ê³ì ìì§ì
ëë¤. íì§ë§ onScrolledë íì ì´ìì¼ë¡ ì¤íëì§ ììµëë¤.
ë¤í¸ìí¬ ì¤ë¡íë§ì ë¤í¸ìí¬ ì°ê²° ìë를 ëë¦¬ê² ì뮬ë ì´ì
íì¬ ì¼ì í ìì ë°ì´í°ë§ ì ì¡íëë¡ ì ííë ê²ì ë»í©ëë¤. íì´ë¨¸ë¥¼ ì¤ë¡íë§íë¤ë ê²ì ì를 ë¤ì´ Date.now()ì²ë¼ ì°ìì ì¼ë¡ ê°ì ì½ëë¼ë, íì´ë¨¸ì ì ë°ë를 ë®ì¶ì´ íì´ë¨¸ ê°ì´ ì¼ì í ìµë ìëë¡ë§ ë³íëë¡ ë§ëë ê²ì ë»í©ëë¤. ë ê°ì§ 모ë ì¤ë¡íë§ì´ë¼ë ì¼ë°ì ì¸ ê°ë
ì 구체ì ì¼ë¡ ì ì©í ì¬ë¡ì
ëë¤.
ê°ì´ 보기
- ì©ì´ ì¬ì :
- Debouncing and Throttling Explained Through Examples on CSS-Tricks (April 6, 2016)