53
Ember.js backburner.js and rsvp.js @gavinjoyce

Ember.js internals backburner.js and rsvp.js

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Ember.js internals  backburner.js and rsvp.js

Ember.jsbackburner.js and rsvp.js

@gavinjoyce

Page 2: Ember.js internals  backburner.js and rsvp.js

A framework for creating ambitious web applications

Page 3: Ember.js internals  backburner.js and rsvp.js

[email protected]

Need help building something ambitious?

Page 4: Ember.js internals  backburner.js and rsvp.js

[email protected]

Need help building something ambitious?

Page 5: Ember.js internals  backburner.js and rsvp.js

[email protected]

Need help building something ambitious?

Page 6: Ember.js internals  backburner.js and rsvp.js

[email protected]

Need help building something ambitious?

Page 7: Ember.js internals  backburner.js and rsvp.js

[email protected]

Need help building something ambitious?

Page 8: Ember.js internals  backburner.js and rsvp.js
Page 9: Ember.js internals  backburner.js and rsvp.js

rsvp.js

Page 10: Ember.js internals  backburner.js and rsvp.js

rsvp.js

backburner.js

Page 11: Ember.js internals  backburner.js and rsvp.js

backburner.js

Page 12: Ember.js internals  backburner.js and rsvp.js

backburner.js

https://github.com/ebryn/backburner.js

Page 13: Ember.js internals  backburner.js and rsvp.js

backburner.js

Page 14: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop

Page 15: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ Schedules Operations

Page 16: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ Schedules Operations

■ Data Bindings

Page 17: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ Schedules Operations

■ Data Bindings■ Actions

Page 18: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ Schedules Operations

■ Data Bindings■ Actions■ UI Rendering

Page 19: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ Schedules Operations

■ Data Bindings■ Actions■ UI Rendering

○ Coalesces Operations

Page 20: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop

Page 21: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ while(true) { … }

Page 22: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ while(true) { … }

Page 23: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ while(true) { … }○ Triggered on ...

Page 24: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ while(true) { … }○ Triggered on

■ UI events

Page 25: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ while(true) { … }○ Triggered on

■ UI events■ Ajax responses

Page 26: Ember.js internals  backburner.js and rsvp.js

backburner.js

● The Ember.js Run Loop○ while(true) { … }○ Triggered on

■ UI events■ Ajax responses■ Ember Data events

Page 27: Ember.js internals  backburner.js and rsvp.js

backburner.js

Run Loop Timing Demo

https://gist.github.com/GavinJoyce/6403776

Page 28: Ember.js internals  backburner.js and rsvp.js

backburner.js

● Queues - Ember.run.queues○ sync - property bindings○ actions - have access to resolved bindings○ routerTransitions○ render - DOM updates○ afterRender - useful for wrapping plugins○ destroy - object deletion

Page 29: Ember.js internals  backburner.js and rsvp.js

backburner.js

Run Loop Queue Demoby Alex Matchneer

http://bit.ly/1afSx2W

Page 30: Ember.js internals  backburner.js and rsvp.js

backburner.js

backburner.js without Ember

https://github.com/ebryn/backburner.js#example-usage

Page 31: Ember.js internals  backburner.js and rsvp.js

rsvp.js

Page 32: Ember.js internals  backburner.js and rsvp.js

rsvp.js

https://github.com/tildeio/rsvp.js

Page 33: Ember.js internals  backburner.js and rsvp.js

rsvp.js

https://github.com/tildeio/rsvp.js

● A tool for organising asynchronous code

Page 34: Ember.js internals  backburner.js and rsvp.js

rsvp.js

https://github.com/tildeio/rsvp.js

● A tool for organising asynchronous code● A tiny Promises/A+ implementation

○ http://promises-aplus.github.io/promises-spec/

Page 35: Ember.js internals  backburner.js and rsvp.js

rsvp.js

Page 36: Ember.js internals  backburner.js and rsvp.js

rsvp.js

A promise is a potential future value

Page 37: Ember.js internals  backburner.js and rsvp.js

rsvp.js

A promise is a potential future value

(thanks to Stefan Penner for use of following slides)

Page 38: Ember.js internals  backburner.js and rsvp.js

rsvp.js

A promise is a potential future value

(thanks to Stefan Penner for use of following slides)

Page 39: Ember.js internals  backburner.js and rsvp.js
Page 40: Ember.js internals  backburner.js and rsvp.js
Page 41: Ember.js internals  backburner.js and rsvp.js

Promises Scale

Real World Example: http://bit.ly/1gmLytY

Page 42: Ember.js internals  backburner.js and rsvp.js
Page 43: Ember.js internals  backburner.js and rsvp.js
Page 44: Ember.js internals  backburner.js and rsvp.js
Page 45: Ember.js internals  backburner.js and rsvp.js
Page 46: Ember.js internals  backburner.js and rsvp.js
Page 47: Ember.js internals  backburner.js and rsvp.js
Page 48: Ember.js internals  backburner.js and rsvp.js
Page 49: Ember.js internals  backburner.js and rsvp.js
Page 50: Ember.js internals  backburner.js and rsvp.js
Page 51: Ember.js internals  backburner.js and rsvp.js

Example use of promises in an Ember.js application:

Page 52: Ember.js internals  backburner.js and rsvp.js

Other talks

rsvp.js:

● Domenic Denicola: http://youtu.be/mZHO1ZTsoFk?t=42m17s

● Stefan Penner: http://youtu.be/mZHO1ZTsoFk?t=1h26m

backburner.js:

● Erik Bryn: http://www.youtube.com/watch?v=VuIFdXmi080&t=24m5s

Page 53: Ember.js internals  backburner.js and rsvp.js

Questions?