Top Banner
CONNECTION LOST… F%CK! Tech & UX – Local Rock Stars Jakob Dam Jensen, Frontend Developer
54

Connection lost... F%CK!

Jan 09, 2017

Download

Internet

Creuna
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Connection lost... F%CK!

CONNECTION LOST… F%CK!Tech & UX – Local Rock Stars

Jakob Dam Jensen, Frontend Developer

Page 2: Connection lost... F%CK!
Page 3: Connection lost... F%CK!

DEMO

Page 4: Connection lost... F%CK!

App = Shell + Content Store dataCache files Sync

Page 5: Connection lost... F%CK!

App = Shell + Content

Page 6: Connection lost... F%CK!

Download content as data and render on client

Page 7: Connection lost... F%CK!
Page 8: Connection lost... F%CK!

NOT FRAMEWORK SPECIFIC

Page 9: Connection lost... F%CK!

App = Shell + Content Store dataCache files Sync

Page 10: Connection lost... F%CK!

Store dataCache files Sync

Page 11: Connection lost... F%CK!

Cache files

Page 12: Connection lost... F%CK!

Appcache

Page 13: Connection lost... F%CK!

Intended to let your web app run offline

Page 14: Connection lost... F%CK!

Application Cache

examples from http://www.html5rocks.com/en/tutorials/appcache/beginner/

Page 15: Connection lost... F%CK!

How to update?

Page 16: Connection lost... F%CK!

User clears their browser data

Page 17: Connection lost... F%CK!

Manifest changes on server

Page 18: Connection lost... F%CK!

Application Cache

examples from http://www.html5rocks.com/en/tutorials/appcache/beginner/

Page 19: Connection lost... F%CK!

JS API to get events on updates and more

Page 20: Connection lost... F%CK!

Checking for updates

examples from http://www.html5rocks.com/en/tutorials/appcache/beginner/

Page 21: Connection lost... F%CK!

Store dataCache files Sync

Page 22: Connection lost... F%CK!

Store data Sync

Page 23: Connection lost... F%CK!

Store data

Page 24: Connection lost... F%CK!

Client side storage

& IndexedDB

FileReader

LocalStorage

Page 25: Connection lost... F%CK!

Synchronous

Simple

Only stores strings

LocalStorage

Page 26: Connection lost... F%CK!

Asynchronous

Transactional

Key-value object store

IndexedDB

Page 27: Connection lost... F%CK!

source https://dev.opera.com/articles/introduction-to-indexeddb/

Page 28: Connection lost... F%CK!
Page 29: Connection lost... F%CK!
Page 30: Connection lost... F%CK!
Page 31: Connection lost... F%CK!
Page 32: Connection lost... F%CK!

source http://caniuse.com/#feat=indexeddb

Page 33: Connection lost... F%CK!

source http://caniuse.com/#feat=sql-storage

Page 34: Connection lost... F%CK!

Asynchronous

FileReader

Read file content in different formats

Files can come from file Input or drag & drop

Page 35: Connection lost... F%CK!

FileReader

Page 36: Connection lost... F%CK!

source http://caniuse.com/#feat=filereader

Page 37: Connection lost... F%CK!

Store data Sync

Page 38: Connection lost... F%CK!

Sync

Page 39: Connection lost... F%CK!

Sync

Page 40: Connection lost... F%CK!

Sync is hard

Page 41: Connection lost... F%CK!

Conflict resolution

Page 42: Connection lost... F%CK!

Domain specific solutions

Page 43: Connection lost... F%CK!

How important are writes when offline?

Read only is much easier

Page 44: Connection lost... F%CK!

Sync

Page 45: Connection lost... F%CK!
Page 46: Connection lost... F%CK!

Is this it?

Page 47: Connection lost... F%CK!

Limitations

Page 48: Connection lost... F%CK!

Service workers

Page 49: Connection lost... F%CK!

Service workers

Google & Mozilla

A proxy for the web browser

A progressive enhancement for app cache

Will enable geofencing, background sync and more

Page 50: Connection lost... F%CK!

Service workers

source http://www.html5rocks.com/en/tutorials/service-worker/introduction/

Page 51: Connection lost... F%CK!

Benefits

Page 52: Connection lost... F%CK!

Challenges

Page 53: Connection lost... F%CK!

@jdj_dk

Jakob Dam Jensen

Page 54: Connection lost... F%CK!

You’re awesome