[webkit-dev] XHR responseArrayBuffer attribute: possible implementation

Chris Rogers crogers at google.com
Fri Oct 22 16:47:51 PDT 2010


A few weeks ago I brought up the idea of implementing the
responseArrayBuffer attribute for XHR:
http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-responsearraybuffer-attribute

One of the concerns was that it might require double the memory usage since
the raw bytes would have to be accumulated along with the decoded text as
it's being built up.  One possible solution which I've been discussing with
James Robinson and Ken Russell is to defer decoding the text, and instead
buffer the raw data as it comes in.  If there's any access to responseText
(or responseXML), then the buffered data can be decoded into text at that
time, and the buffered raw data discarded.  If that case happens, then from
that point on no raw data buffering would happen and the text would be
accumulated as it is right now.  Otherwise, if responseText is never
accessed then the raw data continues to buffer until it's completely loaded.
 Then an access to responseArrayBuffer can easily convert the raw bytes to
an ArrayBuffer.

The idea is that once responseText or responseXML is accessed, then it would
no longer be possible to access responseArrayBuffer (an exception would be
thrown).
Conversely, once responseArrayBuffer is accessed, then it would no longer be
possible to use responseText or responseXML (an exception would be thrown).
This approach does seem a little strange because of the mutually exclusive
nature of the access.  However, it seems that it would be hard to come up
for a reasonable use case where both the raw bytes *and* the text would be
needed for the same XHR.

How does this sound as an approach?

Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20101022/7a105867/attachment.html>


More information about the webkit-dev mailing list