W3C home > Mailing lists > Public > public-webapps@w3.org > October to December 2009

Re: File API proposal - marrying two alternatives

From: Nikunj R. Mehta <nikunj.mehta@oracle.com>
Date: Wed, 7 Oct 2009 08:29:36 -0700
Cc: Garrett Smith <dhtmlkitchen@gmail.com>, Web Applications Working Group WG <public-webapps@w3.org>, arun@mozilla.com
Message-Id: <50D095A6-AE6F-43E5-B225-8E67D631B110@oracle.com>
To: Jonas Sicking <jonas@sicking.cc>

On Oct 6, 2009, at 10:07 PM, Jonas Sicking wrote:

>> [...]
>>
>>>
>>> Jonas' API:
>> // Don't forget var.
>>> reader = new FileReader;
>>> reader.readAsBinaryString(myFile);
>>
>> // What happens when we start a second read?
>> reader.readAsText(myFile);
>> // Race is on.
>>> reader.onload = handler;
>>> function handler(event) {
>>>  doStuffWith(event.target.response);
>>> }
>>>
>>
>> What is the order of expected outcome with multiple reads, as above?
>
> The second read cancels the first one. So after the readAsText call
> returns you'll only get events fired regarding that second load.


You might be confusing reponseXML and responseText mechanisms with  
send(). You can read either at different rates and it doesn't cause  
any problems. Also, attributes will behave differently than methods,  
and programmers factor that in their design.

To be sure, XHR does not allow *multiple* send() calls on an object.  
Step 2 of the send() method in 4.6.3 [1] checks if the send() method  
has already been called on the object. If so, an INVALID_STATE_ERR  
exception is raised and send() method is terminated. In effect, the  
second read fails.

Nikunj
http://o-micron.blogspot.com

[1] http://www.w3.org/TR/2009/WD-XMLHttpRequest-20090820/
Received on Wednesday, 7 October 2009 15:32:25 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:34 GMT