W3C home > Mailing lists > Public > whatwg@whatwg.org > March 2013

Re: [whatwg] asynchronous JSON.parse

From: David Rajchenbach-Teller <dteller@mozilla.com>
Date: Fri, 08 Mar 2013 22:16:59 +0100
Message-ID: <513A554B.2010707@mozilla.com>
To: David Bruant <bruant.d@gmail.com>
Cc: whatwg@whatwg.org
On 3/8/13 5:35 PM, David Bruant wrote:
>> Intuitively, this sounds like:
>> 1. collect data to a JSON;
> I don't understand this sentence. Do you mean "collect data in an object"?

My bad. I sometimes write "JSON" for "object that may be stringified to
JSON format and parsed back without loss", i.e. a bag of [bags of]
non-function properties. So let's just say "object."

>> 2. serialize JSON (hopefully asynchronously) to a Transferable (or
>> several Transferables).
> Why not collect the data in a Transferable like an ArrayBuffer directly?
> It skips the additional serialization part. Writing a byte stream
> directly is a bit hardcore I admit, but an object full of setters can
> give the impression to create an object while actually filling an
> ArrayBuffer as a backend. I feel that could work efficiently.

I suspect that this will quickly grow to either:
- an API for serializing an object to a Transferable or a stream of
Transferable; or
- a lower-level but equivalent API for doing the same, without having to
actually build the object.

For instance, how would you serialize something as simple as the following?

{
  name: "The One",
  hp: 1000,
  achievements: ["achiever", "overachiever", "extreme overachiever"]
   // Length of the list is unpredictable
}

> What are the data you want to collect? Is it all at once or are you
> building the object little by little? For a backup and for FirefoxOS
> specifically, could a FileHandle [3] work? It's an async API to write in
> a file.

Thanks for the suggestion. I am effectively working on refactoring
storing browser session data. Not for FirefoxOS, but for Firefox
Desktop, which gives me more architectural constraints but frees my hand
to extend the platform with additional non-web libraries.

Best regards,
 David



-- 
David Rajchenbach-Teller, PhD
 Performance Team, Mozilla
Received on Friday, 8 March 2013 21:18:00 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 21:18:00 GMT