Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alexandressrocha

como controlar em ajax o carregamento de várias páginas?

Recommended Posts

Olá pessoal,

 

Andei pesquisando e venho encontrado muito esse código abaixo:

 

 

ajax1.open("GET", url ,true);

ajax1.setRequestHeader("Cache-Control", "no-cache");

ajax1.setRequestHeader("Pragma", "no-cache");

 

ajax1.onreadystatechange = funcao

ajax1.send(null)

 

O problema é que desejo fazer um for onde vou carregar várias páginas, e cada página deverá exibir "carregando..." até acabar para girar para a p´roxima página do for.

 

Exemplo:

 

// criaria aqui um array contendo 10 páginas com parametros diferentes.

 

// aqui eu chamaria as 10 páginas para mostrar na tela o carregamento de cada uma.

for (i=0;i<10;i++){

 

 

ajax1.open("GET", url(i) ,true);

ajax1.setRequestHeader("Cache-Control", "no-cache");

ajax1.setRequestHeader("Pragma", "no-cache");

 

ajax1.onreadystatechange = funcao

ajax1.send(null)

 

div.innerHTML="carregando...";

 

}

 

só que aparentemente o For do javascript não espera, e roda todos os 10 itens, antes mesmo de carregar cada chamada de pagina.

 

supondo que cada página tivesse algo a ser executado, eu gostaria que aguardasse o término dessa execução para executar a próxima página e mostrasse na tela.

 

acho que expliquei bem.

 

quem puder me ajudar agradeço.

 

abraços.

 

alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 opções:

 

 

1) ou usa ajax síncrono:

trocando ajax1.open("GET", url ,true); por ajax1.open("GET", url ,false);

 

 

2) ou usa recursividade:

no callback da chegada dos dados do ajax, você chama novamente a função pra próxima página.

Se não souber comé que faz isso, fala aí que a galera ajuda http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que é mais fácil usando recursividade

 

1º - torne sua variável "i" global, declara ela usando "var" fora de qualquer função/metodo e já inicialize ela com 0(zero)

2º - No final da sua função que trata o status do ajax completo, incremente a variável "i" e chame o ajax novamente

 

Só uma atenção, ajax é javascript, então pode ser que o cliente possa interferir com a execução de alguma forma, não garantindo que rode todas as páginas

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.