SlideShare a Scribd company logo
Overview:

KIG-30th

How to measure
your web app
Chang W. Doh,
DaVinci S/W Lab
In this talking, we'll discuss
"Measuring"
and some "Optimization"
Why we should do that?
There are many Optimization
Checklists on the web.
You already know or Just check them.
But, "You can’t optimize what
you can’t measure."
Rendering Performance 
60 FPS 

= 1000ms / 60 frames
= 16.666ms per frame
Simplify: 60FPS means
"We have only 16.7ms for each
frame."
Check: "Rendering time >
16ms"
e.g. Chrome DevTools
Timeline
cog > rendering
What makes '> 16ms'
Repaint Issues
Heavy CSS3 Effects
Animation or Transition using heavy property
Manipulating DOM dynamically
Insertion / Deletion
or Too much hack!
translateZ(0);
...
Example
vrsyeah =dcmn.oysye
a tlCce
ouetbd.tl;
syeah.adn ="0x;/ cueo lyu,rpit
tlCcepdig
2p" / as f aot ean
syeah.odr="0xsldrd;/ cueo lyu,rpit
tlCcebre
1p oi e" / as f aot ean
syeah.oo ="le;/ cueo rpit
tlCceclr
bu" / as f ean
syeah.akrudoo ="fd;/ cueo rpit
tlCcebcgonClr
#a" / as f ean
syeah.otie="e" / cueo lyu,rpit
tlCcefnSz
2m; / as f aot ean
/ nwDMeeet-cueo lyu,rpit
/ e O lmn
as f aot ean
dcmn.oyapnCiddcmn.raeetoe'eIG!);
ouetbd.pedhl(ouetcetTxNd(Ltto')

Finally, <body> triggers layout & repaint.
Further Readings
1.
2.
3.
4.
5.
6.
7.
8.
9.

How Browsers Works
Accelerated Rendering in Chrome: The Layer Model
CSS Paint Time and Page Render Weight
Avoiding Unnecessary Paints
Avoiding Unnecessary Paints: Animated GIF Edition
High Performance Animation
Antialiasing 101
HTML5 Techniques for Optimizing Mobile Performance (en)
Performance profiling with the Timeline (en)
Loading Performance 
Fast-loading means
"Make everything less and
smaller"
Minimize HTTP/HTTPS Requests
Minify Assets: HTML, CSS, Script, Image, ...
Make HTML within ~14KB
Reducing Cookie size
Make AJAX Cacheable and Using GET
Gzipped
...
"and avoid blocking..."
Put CSS at the Top
Script at the Bottom
...
Check: Page Loading Overhead
PageSpeed Insight
http://goo.gl/cr6YzA

Web: http://developers.google.com/speed/pagespeed/insights/
Extension: https://developers.google.com/speed/pagespeed/insights_extensions
 
YSlow
http://yslow.org
Optimization Tools
CSS Minifier
CleanCSS
CSSMin
YUI
CSSTidy
Slimmer
CSS Compressor
JavaScript Minifier
UglifyJS
JSMin
YUI
rJSMin
Dojo ShrinkSafe
Ajax Minifier
Closure
Image Optimizer
SmushIt.com
PunyPNG.com
PNGGauntlet for Windows
Image Optim for Mac
Generate multi-resolution images for srcset with Grunt
Further Readings
1.
2.
3.
4.
5.

Google Developer: Page Speed Tools
YSlow.org (en)
Text Compression for Web Developers
Image Compression for Web Developers
Deep dive into the murky waters of script loading (en)
Script Performance
Chrome DevTools: Profiler
Catch Peaks:
Bottleneck Functions?
Up to you!
Memory Usage

A way to Garbage Collection :)

GC friendly code
When you're using Canvas,
Canvas Profile will rescue you.
Further Readings
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Profiling JavaScript Performance (en)
ECMA-262-3 in detail [huns.me]
Static Memory Javascript with Object Pools
Performance Tips for JavaScript in V8
Writing Fast, Memory-Efficient JavaScript (en)
Faster JavaScript Memoization For Improved App. Perf. (en)
10 Javascript Performance Boosting Tips (OLD!, en)
Make the Web Faster Articles (en)
Optimizing JavaScript code
Canvas Inspection using Chrome DevTools
JavaScript Memory Profiling (en)
Sometimes we need to
measure programatically.
Scripting Profiler & Timeline
Starting Profiling & Timeline Recording
fnto satrfln( {
ucin trPoiig)
cnoetmln(;
osl.ieie)
cnoepoie)
osl.rfl(;
}

Finishing
fnto fnsPoiig){
ucin iihrfln(
cnoetmlnEd)
osl.ieien(;
cnoepoien(;
osl.rflEd)
}
Navigation Timing APIs
High Resolution Time
!msec

1/1000ms!!!
DOMHighResTimeStamp
PerformanceTiming

Representing the moment, in miliseconds !
window.performance.now()
High Resolution Timestamp from 'NavigationStart'

(ucin){
fnto(

<pnsye"otfml:mnsae fn-ie 1.2327548x fn-tl:nra;
sa tl=fn-aiy oopc; otsz: 64064231p; otsye oml

<pnsye"otfml:mnsae fn-ie 1.2327548x fn-tl:nra;
sa tl=fn-aiy oopc; otsz: 64064231p; otsye oml
cnoelg "oesat a "+sat)
osl.o( Cd trs t
tr ;

<pnsye"otfml:mnsae fn-ie 1.2327548x fn-tl:nra;
sa tl=fn-aiy oopc; otsz: 64064231p; otsye oml

<pnsye"otfml:mnsae fn-ie 1.2327548x fn-tl:nra;
sa tl=fn-aiy oopc; otsz: 64064231p; otsye oml

<pnsye"otfml:mnsae fn-ie 1.2327548x fn-tl:nra;
sa tl=fn-aiy oopc; otsz: 64064231p; otsye oml

<pnsye"otfml:mnsae fn-ie 1.2327548x fn-tl:nra;
sa tl=fn-aiy oopc; otsz: 64064231p; otsye oml

<pnsye"otfml:mnsae fn-ie 1.2327548x fn-tl:nra;
sa tl=fn-aiy oopc; otsz: 64064231p; otsye oml
}(;
))
User Timing
performance.mark()
Setting marks

wno.efrac.ak'jxlae';
idwpromnemr(aa_odd)
performance.measure()
Calculating measurements between marks

wno.efrac.esr(
idwpromnemaue
'jxLaig,
Aa_odn'
'jxtr'
aaSat,
'jxn'
aaEd
)
;
removing Marks &
Measurements
Clearing marks & measurements

wno.eomnecerak('aefak)
idwpfrac.laMrs nmOMr';
wno.efrac.laMaue(nmOMaueet)
idwpromneceresrs'aefesrmn';

<pnsye"otfml:mnsae fn-ie 1p;fn-tl:nra;fn-ain:n
sa tl=fn-aiy oopc; otsz: 7x otsye oml otvrat
wno.efrac.laMaue(; / ceral/pn<r
idwpromneceresrs)
/ la l<sa>b>
Retrieving Marks &
Measurements
Getting entries

/ gt'ak etis
/ e mr' nre
wno.efrac.eEtisyye'ak)
idwpromnegtnreBTp(mr';
/ gt'esr'etis
/ e maue nre
wno.efrac.eEtisyye'esr';
idwpromnegtnreBTp(maue)
/ gtetisb nm
/ e nre y ae
wno.efrac.eEtisyae'ae)
idwpromnegtnreBNm(nm';
Sample Code
XMLHttpRequest
Basic code:

vrmRq=nwXLtpeus(;
a ye
e MHtRqet)
<r
b>
mRqoe(GT,ul tu)
ye.pn'E' r, re;
<pnsye"otfml:mnsae"mRqola =fnto(){/pn
sa tl=fn-aiy oopc;>ye.nod
ucine <sa>
d_oehn(.epneet;
osmtigersosTx)
}
<pnsye"otfml:mnsae"mRqsn(;/pn
sa tl=fn-aiy oopc;>ye.ed)<sa>
Adding User-timing
vrrqon =0
a eCut
;

vrmRq=nwXLtpeus(;
a ye
e MHtRqet)
mRqoe(GT,ul tu)
ye.pn'E' r, re;
mRqola =fnto(){
ye.nod
ucine
wno.efrac.ak'akedxr)
idwpromnemr(mr_n_h';
rqn+;
eCt+
wno.efrac.esr(mauexr'+rqn,'aksatxr,'akedxr)
idwpromnemaue'esr_h_
eCt mr_tr_h' mr_n_h';
d_oehn(.epneet;
osmtigersosTx)
}
wno.efrac.ak'aksatxr)
idwpromnemr(mr_tr_h';
mRqsn(;
ye.ed)
Dump
vries=wno.efrac.eEtisyye'esr';
a tm
idwpromnegtnreBTp(maue)
fr(a i=0 i<ieslnt(;+i {
o vr
;
tm.egh) +)
vrrq=iesi;
a e
tm[]
cnoelg'H '+rqnm +'to '+rqdrto +'s)
osl.o(XR
e.ae
ok
e.uain
m';
}
Further Readings
1. W3C Spec.: Navigation Timing (en)
2. W3C Spec.: User Timing (en)
3. User Timing API: Understanding your Web App
Q&A
Thank you!
Ad

Recommended

GruntJS + Wordpress
GruntJS + Wordpress
Leonardo Balter
 
Continuous Integration for front-end JavaScript
Continuous Integration for front-end JavaScript
Lars Thorup
 
Nodejs web service for starters
Nodejs web service for starters
Bruce Li
 
Javascript fullstasck
Javascript fullstasck
William Bruno Moraes
 
Herramientas front
Herramientas front
borya09
 
Functional javascript
Functional javascript
William Bruno Moraes
 
Let s Enjoy Node.js
Let s Enjoy Node.js
Fred Chien
 
Server side scripting smack down - Node.js vs PHP
Server side scripting smack down - Node.js vs PHP
Marc Gear
 
Npm: beyond 'npm i'
Npm: beyond 'npm i'
Pieter Herroelen
 
Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險
Fred Chien
 
CSS Regression Tests
CSS Regression Tests
Kaloyan Kosev
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
k88hudson
 
S&T What I know about Node 110817
S&T What I know about Node 110817
Dan Dineen
 
Windows Azure loves OSS
Windows Azure loves OSS
Kazumi Hirose
 
Node.js with Express
Node.js with Express
Gergely Németh
 
Superfast Automated Web Testing with CasperJS & PhantomJS
Superfast Automated Web Testing with CasperJS & PhantomJS
Hervé Vũ Roussel
 
CasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated Testing
X-Team
 
Riereta Node.js session 3 (with notes)
Riereta Node.js session 3 (with notes)
Tekno Paul
 
Testing MeteorJS using CasperJS
Testing MeteorJS using CasperJS
Stephan Hochhaus
 
Javascript why what and how
Javascript why what and how
sureshpraja1234
 
Use Node.js to create a REST API
Use Node.js to create a REST API
Fabien Vauchelles
 
Pragmatic Functional Programming in the JS land with Clojurescript and Om
Pragmatic Functional Programming in the JS land with Clojurescript and Om
Vagmi Mudumbai
 
#2 Hanoi Magento Meetup - Part 2: Knockout JS
#2 Hanoi Magento Meetup - Part 2: Knockout JS
Hanoi MagentoMeetup
 
Modern Development Tools
Modern Development Tools
Ye Maw
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
Riccardo Coppola
 
Site Testing with CasperJS
Site Testing with CasperJS
Joseph Scott
 
Introduction to Express and Grunt
Introduction to Express and Grunt
Peter deHaan
 
appborg, coffeesurgeon, moof, logging-system
appborg, coffeesurgeon, moof, logging-system
endian7000
 
Measuring User Experience
Measuring User Experience
Alois Reitbauer
 
The Truth About Your Web App's Performance
The Truth About Your Web App's Performance
John Riviello
 

More Related Content

What's hot (20)

Npm: beyond 'npm i'
Npm: beyond 'npm i'
Pieter Herroelen
 
Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險
Fred Chien
 
CSS Regression Tests
CSS Regression Tests
Kaloyan Kosev
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
k88hudson
 
S&T What I know about Node 110817
S&T What I know about Node 110817
Dan Dineen
 
Windows Azure loves OSS
Windows Azure loves OSS
Kazumi Hirose
 
Node.js with Express
Node.js with Express
Gergely Németh
 
Superfast Automated Web Testing with CasperJS & PhantomJS
Superfast Automated Web Testing with CasperJS & PhantomJS
Hervé Vũ Roussel
 
CasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated Testing
X-Team
 
Riereta Node.js session 3 (with notes)
Riereta Node.js session 3 (with notes)
Tekno Paul
 
Testing MeteorJS using CasperJS
Testing MeteorJS using CasperJS
Stephan Hochhaus
 
Javascript why what and how
Javascript why what and how
sureshpraja1234
 
Use Node.js to create a REST API
Use Node.js to create a REST API
Fabien Vauchelles
 
Pragmatic Functional Programming in the JS land with Clojurescript and Om
Pragmatic Functional Programming in the JS land with Clojurescript and Om
Vagmi Mudumbai
 
#2 Hanoi Magento Meetup - Part 2: Knockout JS
#2 Hanoi Magento Meetup - Part 2: Knockout JS
Hanoi MagentoMeetup
 
Modern Development Tools
Modern Development Tools
Ye Maw
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
Riccardo Coppola
 
Site Testing with CasperJS
Site Testing with CasperJS
Joseph Scott
 
Introduction to Express and Grunt
Introduction to Express and Grunt
Peter deHaan
 
appborg, coffeesurgeon, moof, logging-system
appborg, coffeesurgeon, moof, logging-system
endian7000
 
Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險
Fred Chien
 
CSS Regression Tests
CSS Regression Tests
Kaloyan Kosev
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
k88hudson
 
S&T What I know about Node 110817
S&T What I know about Node 110817
Dan Dineen
 
Windows Azure loves OSS
Windows Azure loves OSS
Kazumi Hirose
 
Superfast Automated Web Testing with CasperJS & PhantomJS
Superfast Automated Web Testing with CasperJS & PhantomJS
Hervé Vũ Roussel
 
CasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated Testing
X-Team
 
Riereta Node.js session 3 (with notes)
Riereta Node.js session 3 (with notes)
Tekno Paul
 
Testing MeteorJS using CasperJS
Testing MeteorJS using CasperJS
Stephan Hochhaus
 
Javascript why what and how
Javascript why what and how
sureshpraja1234
 
Use Node.js to create a REST API
Use Node.js to create a REST API
Fabien Vauchelles
 
Pragmatic Functional Programming in the JS land with Clojurescript and Om
Pragmatic Functional Programming in the JS land with Clojurescript and Om
Vagmi Mudumbai
 
#2 Hanoi Magento Meetup - Part 2: Knockout JS
#2 Hanoi Magento Meetup - Part 2: Knockout JS
Hanoi MagentoMeetup
 
Modern Development Tools
Modern Development Tools
Ye Maw
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
Riccardo Coppola
 
Site Testing with CasperJS
Site Testing with CasperJS
Joseph Scott
 
Introduction to Express and Grunt
Introduction to Express and Grunt
Peter deHaan
 
appborg, coffeesurgeon, moof, logging-system
appborg, coffeesurgeon, moof, logging-system
endian7000
 

Similar to Overview: How to Measure your WebApp (20)

Measuring User Experience
Measuring User Experience
Alois Reitbauer
 
The Truth About Your Web App's Performance
The Truth About Your Web App's Performance
John Riviello
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
Tammy Everts
 
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Cliff Crocker
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
SOASTA
 
JS performance tools
JS performance tools
Dmytro Ovcharenko
 
Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016
Doris Chen
 
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Máté Nádasdi
 
Dev tools rendering & memory profiling
Dev tools rendering & memory profiling
Open Academy
 
The latest in site speed: advanced #webperf 2018
The latest in site speed: advanced #webperf 2018
Anton Shulke
 
4Developers 2015: People don't give a f**k of JavaScript - Aurelio De Rosa
4Developers 2015: People don't give a f**k of JavaScript - Aurelio De Rosa
PROIDEA
 
Capturing speed of user experience using user timing api
Capturing speed of user experience using user timing api
SergeyChernyshev
 
Web Performance Part 4 "Client-side performance"
Web Performance Part 4 "Client-side performance"
Binary Studio
 
Run Node Run
Run Node Run
Kevin Swiber
 
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Paul Calvano
 
Measuring User Experience in the Browser
Measuring User Experience in the Browser
Alois Reitbauer
 
Improving user experience with real user measurements
Improving user experience with real user measurements
Samar Panda
 
Common Traits of High Performing Websites, BairesWeb - Argentina
Common Traits of High Performing Websites, BairesWeb - Argentina
Paul Calvano
 
Measuring web performance with user-centric metrics
Measuring web performance with user-centric metrics
Giorgos Bamparopoulos
 
Optimizing browser experience - App!mobile 2013 conf
Optimizing browser experience - App!mobile 2013 conf
Máté Nádasdi
 
Measuring User Experience
Measuring User Experience
Alois Reitbauer
 
The Truth About Your Web App's Performance
The Truth About Your Web App's Performance
John Riviello
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
Tammy Everts
 
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Cliff Crocker
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
SOASTA
 
Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016
Doris Chen
 
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Máté Nádasdi
 
Dev tools rendering & memory profiling
Dev tools rendering & memory profiling
Open Academy
 
The latest in site speed: advanced #webperf 2018
The latest in site speed: advanced #webperf 2018
Anton Shulke
 
4Developers 2015: People don't give a f**k of JavaScript - Aurelio De Rosa
4Developers 2015: People don't give a f**k of JavaScript - Aurelio De Rosa
PROIDEA
 
Capturing speed of user experience using user timing api
Capturing speed of user experience using user timing api
SergeyChernyshev
 
Web Performance Part 4 "Client-side performance"
Web Performance Part 4 "Client-side performance"
Binary Studio
 
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Common Traits of High Performing Websites, WebPerfDays Amsterdam 07-Nov-2018
Paul Calvano
 
Measuring User Experience in the Browser
Measuring User Experience in the Browser
Alois Reitbauer
 
Improving user experience with real user measurements
Improving user experience with real user measurements
Samar Panda
 
Common Traits of High Performing Websites, BairesWeb - Argentina
Common Traits of High Performing Websites, BairesWeb - Argentina
Paul Calvano
 
Measuring web performance with user-centric metrics
Measuring web performance with user-centric metrics
Giorgos Bamparopoulos
 
Optimizing browser experience - App!mobile 2013 conf
Optimizing browser experience - App!mobile 2013 conf
Máté Nádasdi
 
Ad

More from Chang W. Doh (20)

Exploring what're new in Web for the Natively app
Exploring what're new in Web for the Natively app
Chang W. Doh
 
Kotlin의 코루틴은 어떻게 동작하는가
Kotlin의 코루틴은 어떻게 동작하는가
Chang W. Doh
 
Hey Kotlin, How it works?
Hey Kotlin, How it works?
Chang W. Doh
 
Kotlin, 어떻게 동작하나요
Kotlin, 어떻게 동작하나요
Chang W. Doh
 
introduction to Web Assembly
introduction to Web Assembly
Chang W. Doh
 
PWA Roadshow Seoul - Keynote
PWA Roadshow Seoul - Keynote
Chang W. Doh
 
PWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPS
Chang W. Doh
 
CSS 다시 파서 어디에 쓰나
CSS 다시 파서 어디에 쓰나
Chang W. Doh
 
Natively Web App & Service Worker
Natively Web App & Service Worker
Chang W. Doh
 
초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101
Chang W. Doh
 
Service Worker 201 (한국어)
Service Worker 201 (한국어)
Chang W. Doh
 
Service Worker 201 (en)
Service Worker 201 (en)
Chang W. Doh
 
Service Worker 101 (en)
Service Worker 101 (en)
Chang W. Doh
 
Service Worker 101 (한국어)
Service Worker 101 (한국어)
Chang W. Doh
 
What is next for the web
What is next for the web
Chang W. Doh
 
Instant and offline apps with Service Worker
Instant and offline apps with Service Worker
Chang W. Doh
 
Chrome enchanted 2015
Chrome enchanted 2015
Chang W. Doh
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
Chang W. Doh
 
Polymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymer
Chang W. Doh
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations
Chang W. Doh
 
Exploring what're new in Web for the Natively app
Exploring what're new in Web for the Natively app
Chang W. Doh
 
Kotlin의 코루틴은 어떻게 동작하는가
Kotlin의 코루틴은 어떻게 동작하는가
Chang W. Doh
 
Hey Kotlin, How it works?
Hey Kotlin, How it works?
Chang W. Doh
 
Kotlin, 어떻게 동작하나요
Kotlin, 어떻게 동작하나요
Chang W. Doh
 
introduction to Web Assembly
introduction to Web Assembly
Chang W. Doh
 
PWA Roadshow Seoul - Keynote
PWA Roadshow Seoul - Keynote
Chang W. Doh
 
PWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPS
Chang W. Doh
 
CSS 다시 파서 어디에 쓰나
CSS 다시 파서 어디에 쓰나
Chang W. Doh
 
Natively Web App & Service Worker
Natively Web App & Service Worker
Chang W. Doh
 
초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101
Chang W. Doh
 
Service Worker 201 (한국어)
Service Worker 201 (한국어)
Chang W. Doh
 
Service Worker 201 (en)
Service Worker 201 (en)
Chang W. Doh
 
Service Worker 101 (en)
Service Worker 101 (en)
Chang W. Doh
 
Service Worker 101 (한국어)
Service Worker 101 (한국어)
Chang W. Doh
 
What is next for the web
What is next for the web
Chang W. Doh
 
Instant and offline apps with Service Worker
Instant and offline apps with Service Worker
Chang W. Doh
 
Chrome enchanted 2015
Chrome enchanted 2015
Chang W. Doh
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
Chang W. Doh
 
Polymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymer
Chang W. Doh
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations
Chang W. Doh
 
Ad

Recently uploaded (20)

Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 

Overview: How to Measure your WebApp