Re: XMLHttpRequest state after a send()

On Tue, 19 Sep 2006 14:01:41 -0000, Alexey Proskuryakov  
<ap-carbon@rambler.ru> wrote:
> I have tried searching the archives, but couldn't find this already
> discussed.
>
>   The specification defines states 1 and 2 as:
> 1 Open. The open() method has been successfully called.
> 2 Sent. The UA successfully completed the request, but no data has yet  
> been
> received.
>
>   For async requests, send() MUST return immediately, i.e. even before
> resolving the hostname. However, it is also specified that the state  
> MUST be
> set to Sent, which apparently violates its definition.
>
>   In my tests, WinIE 6, Firefox 1.5 and Safari 2 all do not change
> readyState in an async send(). This effectively means that state Open is
> followed by an additional pseudo-state with the same numerical value  
> (e.g.,
> Safari currently ignores subsequent send() requests).

So one way of doing it would be that after the request is completed you go  
to 2, then quickly to 3 and even quicker to 4 dispatching readystatechange  
in the process. Another way of doing it would be to go directly to 4 for  
async requests and dispatch readystatechange when going from 1 to 4.

The people I talked to about this feel that doing the latter makes more  
sense and I tend to agree. It also means you can easily switch between  
async and sync requests.


-- 
Anne van Kesteren
<http://annevankesteren.nl/>
<http://www.opera.com/>

Received on Wednesday, 20 September 2006 11:05:35 UTC