Aaron Boodman wrote:
 Passing booleans, numbers and strings is trivial using the current API.
 Passing arrays of booleans and numbers is trivial too.

 Passing objects, or arrays of strings, arrays, or objects, is more
 complex, but as you point out, it can be done using JSON libraries. Since
 it is likely that JSON will be supported natively by UAs in due course, it
 seems better to wait for that support rather than adding type support to
 postMessage().

I've seen performance problems using JS-based JSON libraries with
Gears workers. In those cases, the developer had to revert to hacky
custom message formats where what he really wanted was to pass an
object.

Someday, all browsers will have fast JSON support built in, but that
will be awhile for IE. Gears could implement postMessage today, but
we've looked into implementing fast JSON support and it seems
difficult to do much better than you can do with script without access
to the script engine internals.

Seems like you're advocating requesting that browsers (IE) add one feature (JSON postMessage) to make up for lack of another feature (built in JSON)? Wouldn't it then be better to standardize a way to do JSON since that could benefit many other features too, such as JSON in DOM storage and JSON over XMLHttpRequest.

 It seems that most messages will consist either of simple strings, or of
 complex data structures (objects). Reconstructing JS objects is not a
 trivial operation; you have to worry about references into other parts of
 the structure, getters and setters that hang or throw or return infinite
 arrays, functions, members that aren't enumerable, etc. I'd rather not go
 down that rat hole with v1.

You'll have these problems with JSON too though, right? Whatever the
rules are, we'll have to figure them out eventually.

Right, but trying to figure it out now would stall implementation of the existing specification, one which already have several implementations under way and seems very useful.

/ Jonas

Reply via email to