Warning:
This wiki has been archived and is now read-only.

Main Page

From Client and Server JavaScript APIs Community Group
Jump to: navigation, search

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

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