SlideShare ist ein Scribd-Unternehmen logo
1 von 78
Downloaden Sie, um offline zu lesen
THROTTLE & DEBOUNCE 
PATTERNS 
IN WEB APPS 
@ALMIRFILHO
@loopinfinito 
l8p.com.br 
@almirfilho
@loopinfinito 
l8p.com.br 
@almirfilho
@loopinfinito 
l8p.com.br 
@almirfilho 
after 
conf
THE PROBLEM
How to control 
user events 
frequency?
SOME CASES 
onclick 
onresize 
onscroll 
onmousemove
onclick 
Order some shit 
… 
Some AJAX action. Whatever
onclick 
Order some shit 
Some AJAX action. Whatever 
click 
freak
onresize 
Responsive modafoca
onresize 
Δ = 100px 
≃ 100 * 
triggerings! 
!%?#$ 
Responsive modafoca
onscroll 
Paralax bullshit
onscroll 
Δ = 100px 
… same 
fuc*ing 
thing 
≃ 
Paralax bullshit
onmousemove 
Gaming junk
onmousemove 
Δx = 100px 
Δy = 50px 
≃ 150 * 
trigg… OMG 
plz stop 
Gaming junk
**BONUS** PROBLEM
Updating <canvas> 
drawings?
Updating <canvas> 
drawings? 
just redraw 
E-V-E-R-Y-T-H-I-N-G
stage.update = function(){ 
redrawHeavyShit(); 
}; 
! 
while(game.isOn){ 
game.step(); 
stage.update(); 
} 
stupid 
game loop
WAY COOLER 
stage.update = function(){ 
redrawHeavyShit(); 
}; 
! 
var gameLoop = function(){ 
game.step(); 
stage.update(); 
requestAnimationFrame(gameLoop); 
}; 
! 
gameLoop();
WAY COOLER 
stage.update = function(){ 
redrawHeavyShit(); 
}; 
! 
var gameLoop = function(){ 
game.step(); 
stage.update(); 
requestAnimationFrame(gameLoop); 
}; 
! 
gameLoop();
Measuring 
damage with 
dev tools
RENDERING & PAINTING COSTS 
all major and modern* browsers 
* even in IE (11)
So, how to control 
user events 
frequency?
THROTTLE
A throttle is a 
mechanism to 
manage fuel flow 
in an engine
ENGINE THROTTLE
So, throttle is just a 
valve? 
! yeeep
COMMON CASES 
resizing 
scrolling 
mouse moving
0s 0.1s 
t 
onscroll 
E E E E E E E E E E E 
paralax()
onscroll throttled 
0s 0.1s 
t 
E E E E E E E E E E E 
THROTTLE 
paralax()
onscroll throttled 
0s 0.1s 
t 
E E E E E E E E E E E 
THROTTLE 
paralax()
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
window.addEventListener(‘scroll’, function(e){ 
paralax(e.args); 
});
LET’S 
THROOOOTLE IT 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
window.addEventListener(‘scroll’, 
throttleParalax() 
);
var throttleParalax = (function(){ 
var timeWindow = 500; 
var now = (new Date()).getTime(); 
var lastExecution = new Date(now - timeWindow); 
! 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
return function(){ 
var now = (new Date()).getTime(); 
if(lastExecution.getTime() + timeWindow <= now){ 
lastExecution = new Date(); 
return paralax.apply(this, arguments); 
} 
}; 
}());
var throttleParalax = (function(){ 
var timeWindow = 500; 
var now = (new Date()).getTime(); 
var lastExecution = new Date(now - timeWindow); 
! 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
return function(){ 
var now = (new Date()).getTime(); 
if(lastExecution.getTime() + timeWindow <= now){ 
lastExecution = new Date(); 
return paralax.apply(this, arguments); 
} 
}; 
}()); 
sets 
a context
var throttleParalax = (function(){ 
var timeWindow = 500; 
var now = (new Date()).getTime(); 
var lastExecution = new Date(now - timeWindow); 
! 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
return function(){ 
var now = (new Date()).getTime(); 
if(lastExecution.getTime() + timeWindow <= now){ 
lastExecution = new Date(); 
return paralax.apply(this, arguments); 
} 
}; 
}()); 
sets 
the func.
var throttleParalax = (function(){ 
var timeWindow = 500; 
var now = (new Date()).getTime(); 
var lastExecution = new Date(now - timeWindow); 
! 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
return function(){ 
var now = (new Date()).getTime(); 
if(lastExecution.getTime() + timeWindow <= now){ 
lastExecution = new Date(); 
return paralax.apply(this, arguments); 
} 
}; 
}()); 
returns the 
event handler
Let’s visualize it
Let’s visualize it 
0s 500ms 
t 
E 
event 
happens
Let’s visualize it 
0s 500ms 
t 
E 
event 
executes
Let’s visualize it 
0s 500ms 
t 
E 100ms 
timeWindow
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E 
another event 
happens
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E 
no execution
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E E 
event 
happens
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E E 
same thing 
now
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E E 100ms
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E E 1E00msE E
DEBOUNCE
A debouncing is a 
technique to 
guarantee that a 
button was pressed 
only once.
ELECTRONIC 
DEBOUNCING
Debounce cancels 
multiple actions for 
postpone to the 
last one.
COMMON CASES 
clicking 
key pressing
0s 1s 
t 
onkeyup 
E E E E E E E E E 
autoComplete()
onkeyup debouncing 
0s 1s 
t 
E E E E E E E E E 
DEBOUNCE 
autoComplete()
onkeyup debouncing 
0s 1s 
t 
E E E E E E E E E 
DEBOUNCE 
autoComplete()
btn.addEventListener(‘keyup’, function(){ 
autoComplete(); 
});
LET’S 
DEBOOOUNCE IT 
btn.addEventListener(‘keyup’, 
debounceAutoComplete() 
);
var debounceAutoComplete = (function(){ 
var timeWindow = 100; 
var timeout; 
! 
var autoComplete = function(arg1, arg2){/* … */}; 
! 
return function(){ 
var context = this; 
var args = arguments; 
clearTimeout(timeout); 
timeout = setTimeout(function(){ 
autoComplete.apply(context, args); 
}, timeWindow); 
}; 
}());
var debounceAutoComplete = (function(){ 
var timeWindow = 100; 
sets 
var timeout; 
a context 
! 
var autoComplete = function(arg1, arg2){/* … */}; 
! 
return function(){ 
var context = this; 
var args = arguments; 
clearTimeout(timeout); 
timeout = setTimeout(function(){ 
autoComplete.apply(context, args); 
}, timeWindow); 
}; 
}());
var debounceAutoComplete = (function(){ 
var timeWindow = 100; 
var timeout; 
! 
var autoComplete = function(arg1, arg2){/* … */}; 
! 
return function(){ 
sets 
the func. 
var context = this; 
var args = arguments; 
clearTimeout(timeout); 
timeout = setTimeout(function(){ 
autoComplete.apply(context, args); 
}, timeWindow); 
}; 
}());
var debounceAutoComplete = (function(){ 
var timeWindow = 100; 
var timeout; 
! 
var autoComplete = function(arg1, arg2){/* … */}; 
! 
return function(){ 
return the 
handler 
var context = this; 
var args = arguments; 
clearTimeout(timeout); 
timeout = setTimeout(function(){ 
autoComplete.apply(context, args); 
}, timeWindow); 
}; 
}());
Let’s visualize it
Let’s visualize it 
0s 500ms 
t 
E 
event 
happens
Let’s visualize it 
0s 500ms 
t 
E 100ms 
setTimeOut
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E 
another event 
happens
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E 
clearTimeOut
Let’s visualize it 
0s 500ms 
t 
E 100ms 
reset 
timeOut 
E
Let’s visualize it 
0s 500ms 
t 
E E 10E0ms
Let’s visualize it 
0s 500ms 
t 
E E 10E0ms
Let’s visualize it 
0s 500ms 
t 
E E E 100ms
Let’s visualize it 
0s 500ms 
t 
E E E 100ms 
cool to 
execute!
Let’s visualize it 
0s 500ms 
t 
E E E 100ms 
E 
life goes on…
READ ABOUT [PT-BR]
but… 
<x-mimimi>
JQUERY PLUGIN 
jquery-throttle-debounce 
$(window).scroll($.throttle(250, paralax)); 
! 
$('input').keyup($.debounce(250, autoComplete)); 
github.com/cowboy/jquery-throttle-debounce
UNDERSCORE.JS 
$(window).scroll(_.throttle(paralax, 250)); 
! 
$(‘input’).keyup(_.debounce(autoComplete, 250)); 
underscorejs.org
THANK 
YOU! 
@ALMIRFILHO

Weitere ähnliche Inhalte

Was ist angesagt?

Programming ppt files (final)
Programming ppt files (final)Programming ppt files (final)
Programming ppt files (final)yap_raiza
 
Ejercicios Scilab Completo
Ejercicios Scilab CompletoEjercicios Scilab Completo
Ejercicios Scilab CompletoRicardo Grandas
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Michael Barker
 
Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015Leonardo Borges
 
The Ring programming language version 1.9 book - Part 92 of 210
The Ring programming language version 1.9 book - Part 92 of 210The Ring programming language version 1.9 book - Part 92 of 210
The Ring programming language version 1.9 book - Part 92 of 210Mahmoud Samir Fayed
 
Newton cotes method
Newton cotes methodNewton cotes method
Newton cotes methodFaisal Saeed
 
Concurrent Application Development using Scala
Concurrent Application Development using ScalaConcurrent Application Development using Scala
Concurrent Application Development using ScalaSiarhiej Siemianchuk
 
Universal JavaScript
Universal JavaScriptUniversal JavaScript
Universal JavaScript名辰 洪
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017名辰 洪
 
Quinto Punto Parte B
Quinto Punto Parte BQuinto Punto Parte B
Quinto Punto Parte Bgustavo206
 
New feature of async fakeAsync test in angular
New feature of async fakeAsync test in angularNew feature of async fakeAsync test in angular
New feature of async fakeAsync test in angularJia Li
 

Was ist angesagt? (20)

Programming ppt files (final)
Programming ppt files (final)Programming ppt files (final)
Programming ppt files (final)
 
Taller De Scilab
Taller De ScilabTaller De Scilab
Taller De Scilab
 
Ejercicios Scilab Completo
Ejercicios Scilab CompletoEjercicios Scilab Completo
Ejercicios Scilab Completo
 
Trabajo Scilab
Trabajo ScilabTrabajo Scilab
Trabajo Scilab
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!
 
Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015
 
SPL 8 | Loop Statements in C
SPL 8 | Loop Statements in CSPL 8 | Loop Statements in C
SPL 8 | Loop Statements in C
 
The Ring programming language version 1.9 book - Part 92 of 210
The Ring programming language version 1.9 book - Part 92 of 210The Ring programming language version 1.9 book - Part 92 of 210
The Ring programming language version 1.9 book - Part 92 of 210
 
Newton cotes method
Newton cotes methodNewton cotes method
Newton cotes method
 
Concurrent Application Development using Scala
Concurrent Application Development using ScalaConcurrent Application Development using Scala
Concurrent Application Development using Scala
 
Lab 3
Lab 3Lab 3
Lab 3
 
Universal JavaScript
Universal JavaScriptUniversal JavaScript
Universal JavaScript
 
2 презентация rx java+android
2 презентация rx java+android2 презентация rx java+android
2 презентация rx java+android
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017
 
Faisal
FaisalFaisal
Faisal
 
Tu1
Tu1Tu1
Tu1
 
Cd
CdCd
Cd
 
Csharp_Chap04
Csharp_Chap04Csharp_Chap04
Csharp_Chap04
 
Quinto Punto Parte B
Quinto Punto Parte BQuinto Punto Parte B
Quinto Punto Parte B
 
New feature of async fakeAsync test in angular
New feature of async fakeAsync test in angularNew feature of async fakeAsync test in angular
New feature of async fakeAsync test in angular
 

Ähnlich wie Throttle and Debounce Patterns in Web Apps

JVMLS 2016. Coroutines in Kotlin
JVMLS 2016. Coroutines in KotlinJVMLS 2016. Coroutines in Kotlin
JVMLS 2016. Coroutines in KotlinAndrey Breslav
 
The Strange World of Javascript and all its little Asynchronous Beasts
The Strange World of Javascript and all its little Asynchronous BeastsThe Strange World of Javascript and all its little Asynchronous Beasts
The Strange World of Javascript and all its little Asynchronous BeastsFederico Galassi
 
Angular promises and http
Angular promises and httpAngular promises and http
Angular promises and httpAlexe Bogdan
 
Understanding Asynchronous JavaScript
Understanding Asynchronous JavaScriptUnderstanding Asynchronous JavaScript
Understanding Asynchronous JavaScriptjnewmanux
 
Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016Codemotion
 
Promise: async programming hero
Promise: async programming heroPromise: async programming hero
Promise: async programming heroThe Software House
 
Expert JavaScript tricks of the masters
Expert JavaScript  tricks of the mastersExpert JavaScript  tricks of the masters
Expert JavaScript tricks of the mastersAra Pehlivanian
 
EcmaScript unchained
EcmaScript unchainedEcmaScript unchained
EcmaScript unchainedEduard Tomàs
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Domenic Denicola
 
Orsiso
OrsisoOrsiso
Orsisoe27
 
jQuery for Beginners
jQuery for Beginners jQuery for Beginners
jQuery for Beginners NAILBITER
 
OO JS for AS3 Devs
OO JS for AS3 DevsOO JS for AS3 Devs
OO JS for AS3 DevsJason Hanson
 
Developer Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duoDeveloper Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duoThe Software House
 
Rich and Snappy Apps (No Scaling Required)
Rich and Snappy Apps (No Scaling Required)Rich and Snappy Apps (No Scaling Required)
Rich and Snappy Apps (No Scaling Required)Thomas Fuchs
 
Asynchronous programming done right - Node.js
Asynchronous programming done right - Node.jsAsynchronous programming done right - Node.js
Asynchronous programming done right - Node.jsPiotr Pelczar
 
The Ring programming language version 1.8 book - Part 88 of 202
The Ring programming language version 1.8 book - Part 88 of 202The Ring programming language version 1.8 book - Part 88 of 202
The Ring programming language version 1.8 book - Part 88 of 202Mahmoud Samir Fayed
 
Javascript And J Query
Javascript And J QueryJavascript And J Query
Javascript And J Queryitsarsalan
 
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートIIopenFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートIIAtsushi Tadokoro
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPresswpnepal
 

Ähnlich wie Throttle and Debounce Patterns in Web Apps (20)

JVMLS 2016. Coroutines in Kotlin
JVMLS 2016. Coroutines in KotlinJVMLS 2016. Coroutines in Kotlin
JVMLS 2016. Coroutines in Kotlin
 
The Strange World of Javascript and all its little Asynchronous Beasts
The Strange World of Javascript and all its little Asynchronous BeastsThe Strange World of Javascript and all its little Asynchronous Beasts
The Strange World of Javascript and all its little Asynchronous Beasts
 
Angular promises and http
Angular promises and httpAngular promises and http
Angular promises and http
 
Understanding Asynchronous JavaScript
Understanding Asynchronous JavaScriptUnderstanding Asynchronous JavaScript
Understanding Asynchronous JavaScript
 
Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016
 
Promise: async programming hero
Promise: async programming heroPromise: async programming hero
Promise: async programming hero
 
Expert JavaScript tricks of the masters
Expert JavaScript  tricks of the mastersExpert JavaScript  tricks of the masters
Expert JavaScript tricks of the masters
 
EcmaScript unchained
EcmaScript unchainedEcmaScript unchained
EcmaScript unchained
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
 
Orsiso
OrsisoOrsiso
Orsiso
 
jQuery for Beginners
jQuery for Beginners jQuery for Beginners
jQuery for Beginners
 
OO JS for AS3 Devs
OO JS for AS3 DevsOO JS for AS3 Devs
OO JS for AS3 Devs
 
Developer Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duoDeveloper Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duo
 
Rich and Snappy Apps (No Scaling Required)
Rich and Snappy Apps (No Scaling Required)Rich and Snappy Apps (No Scaling Required)
Rich and Snappy Apps (No Scaling Required)
 
Of class2
Of class2Of class2
Of class2
 
Asynchronous programming done right - Node.js
Asynchronous programming done right - Node.jsAsynchronous programming done right - Node.js
Asynchronous programming done right - Node.js
 
The Ring programming language version 1.8 book - Part 88 of 202
The Ring programming language version 1.8 book - Part 88 of 202The Ring programming language version 1.8 book - Part 88 of 202
The Ring programming language version 1.8 book - Part 88 of 202
 
Javascript And J Query
Javascript And J QueryJavascript And J Query
Javascript And J Query
 
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートIIopenFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
 

Mehr von Almir Filho

256 Shades of R, G and B
256 Shades of R, G and B256 Shades of R, G and B
256 Shades of R, G and BAlmir Filho
 
The Creative Developer
The Creative DeveloperThe Creative Developer
The Creative DeveloperAlmir Filho
 
Esse cara é o grunt
Esse cara é o gruntEsse cara é o grunt
Esse cara é o gruntAlmir Filho
 
CSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depoisCSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depoisAlmir Filho
 
HTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astralHTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astralAlmir Filho
 
HTML5: seu navegador não é mais o mesmo
HTML5: seu navegador não é mais o mesmoHTML5: seu navegador não é mais o mesmo
HTML5: seu navegador não é mais o mesmoAlmir Filho
 

Mehr von Almir Filho (7)

256 Shades of R, G and B
256 Shades of R, G and B256 Shades of R, G and B
256 Shades of R, G and B
 
The Creative Developer
The Creative DeveloperThe Creative Developer
The Creative Developer
 
Esse cara é o grunt
Esse cara é o gruntEsse cara é o grunt
Esse cara é o grunt
 
CSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depoisCSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depois
 
Web Audio Hero
Web Audio HeroWeb Audio Hero
Web Audio Hero
 
HTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astralHTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astral
 
HTML5: seu navegador não é mais o mesmo
HTML5: seu navegador não é mais o mesmoHTML5: seu navegador não é mais o mesmo
HTML5: seu navegador não é mais o mesmo
 

Kürzlich hochgeladen

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Kürzlich hochgeladen (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

Throttle and Debounce Patterns in Web Apps