Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
throttleすげぇぇぇ
Search
Sigma
October 10, 2022
Programming
85
0
Share
throttleすげぇぇぇ
Sigma
October 10, 2022
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
220
Stable Diffusionで遊んでみた
seiyasugimoto
1
140
EVAフレームワーク
seiyasugimoto
0
110
SSR+SPA
seiyasugimoto
0
150
Nuxtにおける設計
seiyasugimoto
0
100
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
89
スマホでPythonしたい
seiyasugimoto
0
74
平文で保存するな!
seiyasugimoto
0
95
ソースコードを読もう
seiyasugimoto
0
97
Other Decks in Programming
See All in Programming
今さら聞けないCancellationToken
htkym
0
190
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
590
3Dシーンの圧縮
fadis
1
210
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
0
100
ふつうのFeature Flag実践入門
irof
6
2.4k
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
200
SkillsをS3 Filesに置く時のあれこれ
watany
4
1.8k
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
260
色即是空、空即是色、データサイエンス
kamoneggi
1
190
Modding RubyKaigi for Myself
yui_knk
0
440
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
970
実践ハーネスエンジニアリング:ステアリングループを実例から読み解く / Practical Harness Engineering: Understanding Steering Loops Through Real-World Examples
nrslib
6
6.3k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
250
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
The Cost Of JavaScript in 2023
addyosmani
55
9.9k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
210
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
350
Music & Morning Musume
bryan
47
7.2k
Documentation Writing (for coders)
carmenintech
77
5.3k
ラッコキーワード サービス紹介資料
rakko
1
3.4M
Color Theory Basics | Prateek | Gurzu
gurzu
0
320
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 を制する