[whatwg] asynchronous JSON.parse
bruant.d at gmail.com
Fri Mar 8 08:35:00 PST 2013
Le 08/03/2013 15:29, David Rajchenbach-Teller a écrit :
> On 3/8/13 1:59 PM, David Bruant wrote:
>>> Consider, for instance, a browser implemented as a web application,
>>> FirefoxOS-style. The data that needs to be collected to save its current
>>> state is held in the DOM. For performance and consistency, it is not
>>> practical to keep the DOM synchronized at all times with a worker
>>> thread. Consequently, data needs to be collected on the main thread and
>>> then sent to a worker thread.
>> I feel the data can be collected on the main thread in a Transferable
>> (probably awkward, yet doable). This way, when the data needs to be
>> transfered, the transfer is fast and heavy processing can happen in the
> Intuitively, this sounds like:
> 1. collect data to a JSON;
I don't understand this sentence. Do you mean "collect data in an object"?
Just to be sure we use the same vocabulary:
When I say "object", I mean something described by ES5 - 8.6 , so
basically a bag of properties (usually data properties) with an internal
When I say "JSON", it's a shortcut for "JSON string" following the
grammar defined at ES5 - 5.1.5 .
Given the vocabulary I use, one can collect data in an object (by adding
own properties, most likely), then serialize it as a JSON string with a
call to JSON.stringify, but one cannot collect data in/to a JSON.
> 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.
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  work? It's an async API to write in
More information about the whatwg