Ir para conteúdo

POWERED BY:

Arquivado

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

rochajl

[Resolvido] Executar uma função após o termino de outra

Recommended Posts

Possuo duas funções, uma é bem simples e roda um script PHP. A outra aplica o resultado do script no html via jquery ajax. O que gostaria de fazer e não consegui é que a segunda rodasse logo após o termino da primeira. Estas duas funções rodam através do setinterval e o tempo de reload é definido via banco de dados. Consigo fazer com que a primeira rode no tempo da segunda coloquei 10s a mais para que ela rode depois, mas chega em um ponto onde elas se encontram. Há como fazer isso?

Segue como estou fazendo:

 

	//Função de alteração de preço
function chamaalterapreco(){
	$(document).ready(function(){
		$('#alterapreco').load('alterapreco.php');
	});
};


//Rotina para chamar função de alteração de preço
$(document).ready(function(){
	var tempoalterapreco = $("input[name=tempoalterapreco]").val();
	setInterval("chamaalterapreco()",tempoalterapreco);
});	


//Função de alteração de preço on-line
function mudaprecotela(){
	$(document).ready(function(){
		$.ajax({
			url: "mudaprecoonline.php",
			dataType: "json",
			success: function(json){
				//Laço de repetição para iterar no array
				$.each(json, function(key, value){
					$('.' + value.codbarra).html("<style='font-size:34px' align=right><strong>" + value.preco + "</strong>");
				})(value);
			}
		});
	});
};


//Rotina para chamar funcao de alteração on-line
$(document).ready(function(){
	var tempoalterapreco = $("input[name=tempoalterapreco]").val();
	var mudaprecotela = $("input[name=mudaprecotela]").val();
	setInterval("mudaprecotela()",(parseInt(mudaprecotela)+parseInt(tempoalterapreco)));
});

 

Agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente usar a função clearinterval antes da setInterval mas para isso precisa definir uma variável para o setInterval.

exemplo:

clearInterval(idInterval);
idInterval = setInterval("chamaalterapreco()",tempoalterapreco);

 

faça isso nas duas funções sendo assim toda vez que executa a função limpa o interval anterior e as funções nunca vão se encontrar.

 

você só precisa achar o local certo de limpar para que não interrompa a rotina das funções.

 

espero que ajude... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi amigo, retire essas chamadas a document.ready, não faz nenhum sentido.

Somente a última é necessária.

Compartilhar este post


Link para o post
Compartilhar em outros sites
function chamaalterapreco(){
               $(document).ready(function(){
                       $('#alterapreco').load('alterapreco.php')
                                       .done(function(){
                                             mudaprecotela(); 
                                       });
               });
       };

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.