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
87
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
120
SSR+SPA
seiyasugimoto
0
160
Nuxtにおける設計
seiyasugimoto
0
100
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
92
スマホでPythonしたい
seiyasugimoto
0
75
平文で保存するな!
seiyasugimoto
0
98
ソースコードを読もう
seiyasugimoto
0
99
Other Decks in Programming
See All in Programming
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
130
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
800
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.4k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
290
1B+ /day規模のログを管理する技術
broadleaf
0
110
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
120
Claspは野良GASの夢をみるか
takter00
0
200
New "Type" system on PicoRuby
pocke
1
1k
RTSPクライアントを自作してみた話
simotin13
0
620
Webフレームワークの ベンチマークについて
yusukebe
0
180
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.5k
Featured
See All Featured
The browser strikes back
jonoalderson
0
1.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
730
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Amusing Abliteration
ianozsvald
1
210
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Why Our Code Smells
bkeepers
PRO
340
58k
Odyssey Design
rkendrick25
PRO
2
700
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
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 を制する