Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
throttleすげぇぇぇ
Search
Sigma
October 10, 2022
Programming
89
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
230
Stable Diffusionで遊んでみた
seiyasugimoto
1
150
EVAフレームワーク
seiyasugimoto
0
120
SSR+SPA
seiyasugimoto
0
170
Nuxtにおける設計
seiyasugimoto
0
110
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
94
スマホでPythonしたい
seiyasugimoto
0
76
平文で保存するな!
seiyasugimoto
0
100
ソースコードを読もう
seiyasugimoto
0
100
Other Decks in Programming
See All in Programming
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
190
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
140
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
170
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
100
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
110
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
360
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.2k
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
120
スマート反転とウェブアクセシビリティ
camiha
0
210
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
570
SREの越境 / SRE Collaboration
y0hgi
0
120
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Mobile First: as difficult as doing things right
swwweet
225
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Documentation Writing (for coders)
carmenintech
77
5.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
368
27k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Believing is Seeing
oripsolob
1
220
Tell your own story through comics
letsgokoyo
1
1.1k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
エンジニアに許された特別な時間の終わり
watany
109
250k
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 を制する