1. A computer-implemented method comprising: receiving, concurrently with parsing a structured document, a request from a client to access data in the structured document while the parsing by a computing device is performed serially from a beginning to an end of the structured document, and producing a data object in a memory which is tree-structured and changes as the parsing progresses; in response to the request, and while the structured document is being parsed, determining that the data is not yet available in a portion of the data object by ascertaining a state of the parsing; and when the data becomes available in the data object, and before the parsing has completed, performing the requested access on the portion of the data object, returning any requested data to the client, and deleting the portion of the data object as parsing progresses.
1. A computer-implemented method comprising: receiving, concurrently with parsing a structured document, a request from a client to access data in the structured document while the parsing by a computing device is performed serially from a beginning to an end of the structured document, and producing a data object in a memory which is tree-structured and changes as the parsing progresses; in response to the request, and while the structured document is being parsed, determining that the data is not yet available in a portion of the data object by ascertaining a state of the parsing; and when the data becomes available in the data object, and before the parsing has completed, performing the requested access on the portion of the data object, returning any requested data to the client, and deleting the portion of the data object as parsing progresses. 7. The method of claim 1 where the parsing is performed by one or more first threads asynchronously from one or more second threads of the client.