Recarregando a página enquanto uma solicitação Ajax em andamento fornece resposta e status vazios como zero

O navegador é o Firefox 3.0.10. Estou solicitando uma página usando o Ajax. A resposta está em andamento e pode estar em readyState menor que 4. Enquanto isso, estou tentando recarregar a página. A solicitação termina, dando uma resposta vazia.

Usei o alerta para encontrar qual sequência foi fornecida como texto de resposta. Suponho que a essa altura o estado pronto 4 seja atingido. Por que é uma string vazia?

Quando alertai o xmlhttpobject.status, ele exibiu 0.

Quando aviso o xmlhttpobject.statusText, ocorre uma exceção, indicando "NÃO DISPONÍVEL".

Quando eu leio no documentohttp://www.devx.com/webdev/Article/33024/0/page/2 disse para 3 e 4status estatusText estão disponíveis, mas quando testei, apenas o status está disponível, mas não o satausText.

Aqui está o código de exemplo.

Considere que solicitei uma página e minha função de retorno de chamada é a seguinte

function cb(rt)
{
   if(rt.readyState==4)
   {
      alert(rt.status);
      alert(rt.statusText); // which throws an exception
   }
}

e meu script do lado do servidor é o seguinte

sleep(30);
//flushing little drop down code

Além destes, notei o seguinte.

Suponha novamente que estou solicitando o script acima usando o Ajax. Agora haverá um tempo ocioso de 30 segundos. Antes desses 30 segundos, pressiono refresh. Eu obtive xmlhttpobject.status como 0, mas ainda assim o navegador não recarregou a página até 30 segundos. Por quê?

Quando atualizo uma página antes que uma solicitação do Ajax seja concluída, o valor do status é definido como zero e o estado pronto como 4, mas a página ainda aguarda a resposta do servidor terminar.

O que está acontecendo?

A RAZÃO PARA EU ENFRENTAR ALGUMA COISA COMO ISSO É O SEGUINTE.

Sempre que faço uma solicitação do Ajax, se o processo for bem-sucedido, como inserir algo ou excluir algo, eu pop-up uma div informando que foi atualizada com êxito e recarregarei a página. Mas, se houver algum erro, não recarregarei a página, mas alertarei que não é possível processar esta solicitação.

Se o usuário recarregar a página antes que qualquer uma dessas solicitações seja concluída, eu recebo uma resposta vazia que, no meu cálculo, existe um erro no servidor. Então, eu estava depurando a resposta do Ajax para filtrar que a conexão foi interrompida porque o usuário pressionou recarregar. Portanto, desta vez, não quero exibir "não é possível processar esta solicitação" quando o usuário recarregar a página antes que a solicitação seja concluída.

Oh ... uma longa história. É uma descrição longa, para que eu possa fazer com que os especialistas entendam minha dúvida.

Então, o que eu quero formar acima.

Qualquer tipo de resposta iria clarear minha mente. Ou eu gostaria de dizer todo tipo de respostas.

EDIT: 19 dez. Se não obtiver resposta correta, excluirei esta pergunta e reescreverei com exemplos. Senão eu aceitarei depois de experimentar.

Vou criar um programa de demonstração e postarei o link aqui para que você possa entender o que estou enfrentando. Hoje é dia 29 de dezembro de 2010.

questionAnswers(5)

yourAnswerToTheQuestion