Warning:
This wiki has been archived and is now read-only.
Main Page
From Client and Server JavaScript APIs Community Group
Contents
Client-side, Server-side, modules, and worker contexts
Notes:
- 1. Since the CommonJS proposals, most of the server-side JavaScript implementations are module based and implement a module context.
- 2. Since Web workers were defined, some JavaScript contexts are already considered, even on client-side, without UI constraints
- 3. Server-Side implementations can be mono-threaded, using an event-loop (node.js) or multi-threaded, allowing synchronous APIs (rhino, JScript.NET, Wakanda, SilkJS, RingoJS, ...)
- 4. Many W3C APIs are defined to work either in synchronous or asynchronous mode
A proposal would be to consider any Server-Side JavaScript context:
- as a module
- as a remote shared (node.js) or dedicated worker (synchronous platforms)
Standard JavaScript API draft/specification
Click on a specification name to see more details about its SSJS implementation
Specification / API | Browser Implementations | Mobile Implementations | SSJS Implementations | support via libs/modules |
---|---|---|---|---|
Base64 utility methods | FF, Chrome, Safari | iOS | ? | w3c-windowbase64 |
Blob | IE, FF, Chrome, Safari, Opera | iOS, Android, BB | Wakanda | w3c-blob |
Canvas | IE, FF, Chrome, Safari, Opera | iOS, Android, Opera mini, BB, FF, Chrome | ||
Console API (Firebug) | FF, Chrome, Safari, Opera | ? | RingoJS, SilkJS, TeaJS, Wakanda | |
DOM | IE, FF, Chrome, Safari, Opera | iOS, Android, Opera mini, BB, FF, Chrome | jsdom | |
DOM Events | IE, FF, Chrome, Safari, Opera | iOS, Android, Opera mini, BB, FF, Chrome | w3c-domevents | |
DOM Promises | ||||
EventSource | FF, Chrome, Safari, Opera | iOS, BB, Chrome Android, FF Android | html5-eventsource, eventsource-node | |
File API | IE, FF, Chrome, Safari, Opera | iOS, Android, BB | Wakanda | |
File API: Directories and System API | Chrome | Android | Wakanda | |
File API:Writer API | Chrome | Android | ||
High Resolution Time | IE, FF, Chrome, | iOS, Android | ||
ImageData Interface | IE, FF, Chrome, Safari, Opera | iOS, Android, Opera, BB, Chrome, FF | ||
Modules (CommonJS) | ArangoDB, GPSEE, Node.js, RingoJS, SilkJS, TeaJS, Wakanda... | requirejs | ||
Quota Management API | ||||
Raw Socket API | ||||
System Information API | ? | ? | ||
Stream API | ? | ? | ||
Timers | IE, FF, Chrome, Safari, Opera | iOS, Android, Opera, BB, Chrome, FF | Node.js, Wakanda | |
Typed Array | IE, FF, Chrome, Safari, Opera | iOS, Android, Chrome, FF | Nashorn | |
URL | ? | |||
Web Cryptography | FF | |||
Web Notifications | Chrome, Safari | BB, Chrome | ||
Web Sockets | IE, FF, Chrome, Safari, Opera | iOS, Opera, BB, FF, Chrome | node-websocket-client | |
Web SQL | Chrome, Safari, Opera | iOS, Android, BB, Chrome, FF | node-sqlite (partial) | |
Web Storage | IE, FF, Chrome, Safari, Opera | iOS, Android, BB, Chrome, FF | Wakanda | |
Web Workers | IE, FF, Chrome, Safari, Opera | iOS, BB, FF, Chome | RingoJS, Wakanda | node-worker |
WebCL | node-webcl, nokia & samsung extensions | |||
WebGL | FF, Chrome, Safari, Opera | Opera mini, BB, FF for Android | ||
XMLHttpRequest | IE, FF, Chrome, Safari, Opera | iOS, Android, Opera mini, BB, Chrome, FF | SilkJS, Wakanda, GPSEE | node-xmlhttprequest |
Debates
Multithreaded vs Single Threaded EventLoop
Notes:
- Synchronous APIs are not blocking the UI when used in workers
- Most of the current SSJS platform are synchronous multi-threaded ones.
- Node.js EventLoop on the server is interesting but does it fit to all server use cases?
- Even if it doesn't solve all async debugging issues, DOM Future proposal, can make async APIs more user friendly.
Some resources
- http://www.slideshare.net/alexandre_morgaut/state-of-the-art-server-side-javascript-web5-2012 (slides 29, 36 and 37)
- http://www.silkjs.net/sync-vs-async/
- http://blog.getify.com/native-javascript-sync-async/
Meetings
First Meeting during TPAC 2012
"End-to-end W3C APIs" breakout session: http://www.w3.org/wiki/TPAC2012/SessionIdeas#End-to-end_W3C_APIs
Slides: http://www.slideshare.net/alexandre_morgaut/endtoend-w3c-apis-tpac-2012
Minute Report: http://www.w3.org/2012/10/31-jseverywhere-minutes.html (Some fixes would be required in the report)
Next Meeting
To be defined