Pergunta

XMLHttpRequest tem 5 readyStates, e eu só uso um deles (o último, 4).

Quais são os outros, eo que aplicações práticas eu posso usá-los em?

Foi útil?

Solução

A lista completa de valores readyState é:

State  Description
0      The request is not initialized
1      The request has been set up
2      The request has been sent
3      The request is in process
4      The request is complete

(de https://www.w3schools.com/js/js_ajax_http_response.asp)

Na prática, você quase nunca usar qualquer um deles, exceto para 4.

Alguns XMLHttpRequest implementações podem deixá-lo ver as respostas parcialmente recebidos em responseText quando readyState==3, mas isso não é universalmente suportado e não deve ser invocado.

Outras dicas

kieron 's resposta contém w3schools ref. a que ninguém contar, bobince 's resposta dá link, que na verdade diz implementação nativa do IE,

então aqui está a documentação original citado para entender corretamente o que readystate representa:

O objeto XMLHttpRequest pode estar em vários estados. O atributo readyState deve retornar o estado atual, que deve ser um dos seguintes valores:

Não enviado (valor numérico 0)
O objeto foi construído.

ABERTO (valor numérico 1)
O método open () tiver sido chamado com êxito. Durante este cabeçalhos de pedido de estado pode ser definido usando setRequestHeader () e o pedido pode ser feito usando o método send ().

HEADERS_RECEIVED (valor numérico 2)
Todos os redireccionamentos (se houver) foram seguidos e todos os cabeçalhos HTTP de resposta final ter sido recebido. Vários membros de resposta do objeto estão agora disponíveis.

CARGA (valor numérico 3)
O corpo entidade resposta está sendo recebido.

FEITO (valor numérico 4)
A transferência de dados foi concluída ou algo deu errado durante a transferência (por exemplo infinita redirecionamentos).

Por favor, leia aqui: W3C explicação sobre ReadyState

documentação definitiva Original

0, 1 e 2 única acompanhar como muitos dos métodos necessários para fazer um pedido que você chamou até agora.

3 diz que a resposta do servidor começou a entrar. Mas quando você está usando o objeto XMLHttpRequest partir de uma página web não há quase nada (*), você pode fazer com essa informação, desde que você não tem acesso a as propriedades estendidas que permitem ler os dados parciais.

readyState 4 é a única que detém qualquer significado.

(*: sobre o uso somente concebível que eu posso pensar para verificação de readyState 3 é que ele sinaliza alguma forma de vida no final do servidor, de modo que você poderia aumentar a quantidade de tempo que você esperar por uma resposta completa quando você recebê-lo.)

onreadystatechange Stores uma função (ou o nome de uma função) a ser chamado automaticamente cada vez que as alterações de propriedade readyState readyState detém o status do XMLHttpRequest. Alterações de 0 a 4:

0: pedido não inicializado

1: conexão do servidor estabelecida

2: pedido recebido

3: solicitação de processamento

4: pedido terminou ea resposta está pronto

estado 200: "OK"

404: Página não encontrada

  • 0: não enviadas cliente foi criado. open () não é chamado ainda.
  • 1:. ABERTA open () foi chamado
  • 2: send HEADERS_RECEIVED () foi chamado, e os cabeçalhos e status estão disponíveis.
  • 3: Baixando carregamento; responseText contém dados parcial.
  • . 4: FEITO A operação está completa

(De https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top