Ir para conteúdo

POWERED BY:

Arquivado

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

Spyder.RV

Monitorar carga de arquivos sucessivos via jquery

Recommended Posts

Como faço pra monitorar as requisições pendentes usando jQuery?

 

Tipo, tenho um loop que faz a pre-carga de algumas imagens pesadas e somente após todas estarem carregadas mostra a página... o problema é que não consegui implementar um callback de maneira correta pra só ser disparado no momento que a última imagem requisitada estiver 100% carregada...

 

A implementação que estou fazendo é assim:

 

Tenho um array com os endereços das imagens, e um contador com o total de imagens...

 

Então, em toda ocorrência do evento onload de uma imagem carregada eu decremento 1 o contador até ficar em zero...

 

Na lógica é interessante... mas fico com medo desse while infinito aí... deve existir uma prática mais interessante... alguém tem uma dica?

 

function carregaImagens(images, callback){
    var imagesLeft = imagem.length();
var imagesLoaded = new Array();
var i = 0;

$(images).each(function(){
	imagesLoaded[i] = document.createElement('img');
	imagesLoaded[i].src = this;
	imagesLoaded[i].onload = function(){
		imagesLeft--; // Decrementa o total de imagnes
		console.log("falta: " + imagesLeft);  
	}
	i++;
});

// Loop aguardando total zerar
while (imagesLeft > 0){ /* loop até zerar */ }

if ($.isFunction(callback)) {
	callback(image);
}else{
	return imagesLoaded;
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://api.jquery.com/deferred.done/

acho q isso vai resolve..

 

ei esse cod abaixo carrega todas as imagens q tao no array ?

 

é esse onload q determina isso?

 

$(images).each(function(){
               imagesLoaded[i] = document.createElement('img');
               imagesLoaded[i].src = this;
               imagesLoaded[i].onload = function(){
                       imagesLeft--; // Decrementa o total de imagnes
                       console.log("falta: " + imagesLeft);  
               }
               i++;
       });

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.