/ / jQuery.ajax verificando se já existe outro xhr - javascript, ajax, jquery

jQuery.ajax verificar se já existe outro xhr - javascript, ajax, jquery

Eu tenho uma página quando, se o usuário estiver perto da parte inferior da página, carrega a próxima página.

Eu mudei recentemente para jQuery e agora use o jQuery.ajax() para obter os dados. No entanto, agora não consigo verificar se o xhr já está carregando, fazendo a página carregar vários xhrs quando o usuário está perto da parte inferior.

Meu ouvinte é:

$(document).scroll(function () {
if(/* scrollbar is near bottom */)
loadxhr(dat++); //function that calls jQuery.ajax()
}
});

Basicamente, você pode acompanhar o readyState da chamada em um escopo global?

Respostas:

1 para resposta № 1

Eu só teria uma variável (fora da função)

var scrolling = 0;

Quando chegar a hora de chamar a função ajax, verifique se a rolagem é igual a 0 e, caso contrário, não faça nada; se for igual, defina-o como 1, chame a função ajax e retorne-o a 0 no retorno de chamada deste último.

Como o equivalente a um "bloqueio" emsistemas multithreading preventivos, exceto que você realmente não precisa de um bloqueio aqui (bom também, porque o javascript não os possui ;-) porque seu segmento de controle só é interrompido quando você chama a função ajax, não em pontos arbitrários no seu código como no multithreading preemptivo.


1 para resposta № 2

talvez confira .ajaxStart () e .ajaxStop () para eventos que informarão quando as chamadas estão em andamento?