$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
throttleすげぇぇぇ
Search
Sigma
October 10, 2022
Programming
0
79
throttleすげぇぇぇ
Sigma
October 10, 2022
Tweet
Share
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
200
Stable Diffusionで遊んでみた
seiyasugimoto
1
130
EVAフレームワーク
seiyasugimoto
0
110
SSR+SPA
seiyasugimoto
0
140
Nuxtにおける設計
seiyasugimoto
0
91
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
82
スマホでPythonしたい
seiyasugimoto
0
69
平文で保存するな!
seiyasugimoto
0
89
ソースコードを読もう
seiyasugimoto
0
87
Other Decks in Programming
See All in Programming
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
230
Java 25, Nuevas características
czelabueno
0
110
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
580
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
3
1.2k
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
160
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
260
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
130
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
120
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
120
gunshi
kazupon
1
120
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
170
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
How to Ace a Technical Interview
jacobian
281
24k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
37
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
0
300
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
250
The SEO Collaboration Effect
kristinabergwall1
0
310
Code Review Best Practice
trishagee
74
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Embracing the Ebb and Flow
colly
88
4.9k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
110
Transcript
throttleがすごい話 Vueのリアクティブシステム
NLP のしぐまです! • 株式会社エヌエルプラスに去年入社しました。 ◦ リファラル採用やってます! • 自分はイベント配信プラットフォーム (受託) 等やってます。
• 現在は主にNuxtとGoとGCPを触っています。 ◦ フルスタックです!何でも屋とも言う…なぜかGoも触ってる… • シニアエンジニアです。
Vueのリアクティブシステム
変数の書き換えが速さがいやらしい場合 • 変数の書き換えに反応して重たい描画機能が走っている場合。書き換えの速さに よって死ぬ。 ◦ 経験したケースでは秒間数十回走るとつらい。 ◦ 高速なチャットとか。 • throttle
で書き換え回数を制限してしまえば安定するのではないか?
throttleの概要 • 関数の実行回数をNミリ秒に一回に制限できる。 ◦ 500 ミリ秒なら秒間 2 回 • Nミリ秒内の実行は無視されず、次の実行可能タイミングに実行される。
• lodashに入ってる
どう制限するか • ウォッチャに throttle で ラップした update 関数 を仕込み、更新回数の 制限された変数を実際
にその変数を描画する コンポーネントに渡す。 DRAW COMPONENT throttled variable: drawするコンポーネントへ渡 す。 update function: throttled variableを更新 watch: callback に throttle update function, 高速 で更新される store の変数を watch STORE
こんな感じ
lodash の throttle が優秀 • 公式ドキュメントから参照され ていた記事 https://css-tricks.com/debou ncing-throttling-explained-e xamples/
にあるデモを一部 throttle 用に書き換えた。
ユースケース(throttle, debounce) • 複数回の誤クリックの対策 • スクロールイベント等の制限 • リアクティブシステムの暴走を止める
イベント駆動な JavaScript を制する