Top Banner
Extensible Web by new Low-Level Capabilities #html5j
31
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: Extensible web #html5j

Extensible Webby new Low-Level Capabilities

#html5j

Page 2: Extensible web #html5j

Jack

● id: Jxck● github: Jxck● twitter: @jxck_● about: http://jxck.io● blog: http://jxck.hatenablog.com● podcast: http://mozaic.fm● Love: music

Page 3: Extensible web #html5j

Extensible Web

Page 5: Extensible web #html5j

HTTP2JP

Page 6: Extensible web #html5j

so What ?

Page 7: Extensible web #html5j

“Shut the fuck up and

write some code”

Extensible Web is ...

Page 8: Extensible web #html5j

Standarization

Problem

Page 9: Extensible web #html5j

New API ?standarization

implementation

Page 10: Extensible web #html5j

● Lead by Standarize○ long term discussion○ made a Camel some time

● Lead by Browser Vender○ depends on vender imple○ depends on vender priority

Standarization Problem

Page 11: Extensible web #html5j

Web Devs

Standarize

Browser

1. spec

2. impl

3. feedback

Was

Page 12: Extensible web #html5j

Extend the Web Forward

Page 13: Extensible web #html5j

Extend the Web Forward

by

Developer

Page 14: Extensible web #html5j

Web Devs

Standarize

Browser

1. PoC

Now

3. impl

2. spec

Page 15: Extensible web #html5j

Proof of Concept

based on

Low Level API

Page 16: Extensible web #html5j

Web プラットフォームは、 HTML や CSS などの

既存の特徴を説明する低レベルな機能 を提供することで、開発者がそれを理解し

再現することが可能となるようにすべきです。

Expose low-level capabilitiesthat explain existing features,such as HTML and CSS,allowing authors to understand and replicate them.

Low Level API/Capability

Page 17: Extensible web #html5j

Case: Offline Application

● Hi Level○ AppCache

● Low Level○ ServiceWorker○ Request○ Response○ Fetch○ Cache○ URL○ etc

Page 18: Extensible web #html5j

● Terminology○ different context from UI

● API○ lowest api for registoring script

ex: Service Worker

navigator.serviceWorker.register('script.js');

Page 19: Extensible web #html5j

● Terminology○ what is Request / Response

● API○ what is lowest api for Req/Res

ex: Request/Response

new Request({ method: 'GET', body: 'Hello World'});

Page 20: Extensible web #html5j

● Terminology○ what is fetching on Web?

● API○ what is lowest api for fetch

ex: Fetch

fetch('http://my.api.org/') .then((res) => { console.log(res.status); });

Page 21: Extensible web #html5j

● Terminology○ cache Requested Response

● API○ lowest api for cache

ex: Cache

caches.open('NAME') .then((cache) => { cache.put(req, res); });

Page 22: Extensible web #html5j

● Terminology○ what is URL on Web?

● API○ lowest api for URL

ex: URL

var url = new URL('http://my.api.org/');console.log(url.host);console.log(url.port);

Page 23: Extensible web #html5j

● Terminology○ which en/decoder web needs ?

● API○ lowest api for Encoding

ex: Encoding

var enc = new TextEncoder();var u = enc.encode('foo');console.log(u);// [102, 111, 111]

Page 24: Extensible web #html5j

Not Only for offline

● Hi Level○ Offline○ Proxy○ Testing○ Isomorphic○ etc

● Low Level○ ServiceWorker○ Request○ Response○ Fetch○ Cache○ URL○ etc

Page 25: Extensible web #html5j

● Wrap a Low Level API

● Publish the new Library

● Develop the new Frame Work

● Extend the Web Forward

Build the Next Web

Page 26: Extensible web #html5j

“Shut the fuck up and

write some code

over New Low Level Capabilities”

Extensible Web is ...

Page 27: Extensible web #html5j

XHR

Fetch

URL

Encoding

Service Worker

Stream

Promise

Notification

Blob

ArrayBuffer

File

HTML

Templates

TCP/UDP

IndexedDB

WebCrypto

DataView

ArrayBufferView

HTML Imports

Shadow DOM

Custom Elements

LocalStorage

FormData

URLSearchParams

WebGL

WebRTC

WebSocket

Canvas

getUserMedia

CSP

WebAudio

QuerySelector

Application Cache

Cache

HIGH

LOW

CORS

Page 30: Extensible web #html5j

thanks :)Extend the Web Forward

Page 31: Extensible web #html5j

Jack