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
0
82
throttleすげぇぇぇ
Sigma
October 10, 2022
Tweet
Share
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
210
Stable Diffusionで遊んでみた
seiyasugimoto
1
140
EVAフレームワーク
seiyasugimoto
0
110
SSR+SPA
seiyasugimoto
0
150
Nuxtにおける設計
seiyasugimoto
0
95
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
84
スマホでPythonしたい
seiyasugimoto
0
71
平文で保存するな!
seiyasugimoto
0
91
ソースコードを読もう
seiyasugimoto
0
91
Other Decks in Programming
See All in Programming
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
310
モダンOBSプラグイン開発
umireon
0
160
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
120
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
140
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
150
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
1.1k
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
140
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
160
Codex の「自走力」を高める
yorifuji
0
1.3k
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
610
How to stabilize UI tests using XCTest
akkeylab
0
130
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1k
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
140
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Prompt Engineering for Job Search
mfonobong
0
200
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
A designer walks into a library…
pauljervisheath
210
24k
The World Runs on Bad Software
bkeepers
PRO
72
12k
What does AI have to do with Human Rights?
axbom
PRO
1
2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Producing Creativity
orderedlist
PRO
348
40k
A Modern Web Designer's Workflow
chriscoyier
698
190k
The Limits of Empathy - UXLibs8
cassininazir
1
270
Navigating Team Friction
lara
192
16k
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 を制する