(Resolvido) Problemas com retornos de requisições ajaxs

10 respostas
S

Bom dia

Estou trabalhando em uma página na qual ela, no momento que clico no botão pesquisar, carrega 3 funções javascript que executam, cada uma, uma função ajax. A chamada é simples.
$.get(url, function(response, status, xhr) {
    if (status == 'success') {
	$.each(response.list, function(i, item) {
         
        }
    }
 }

As 3 funções ajax executam no mesmo momento (Mozilla FireBug me possibilitou ver que ambas duram entre 200 e 600ms) e executam no mesmo momento.

Meu problema: As vezes uma das requisições ajax não traz a lista carregada, porem, se eu mando executar novamente ou se eu copio o link chamado pela função ajax e copio em outra página a lista é carregada com os valores.

O Ajax não está me retornando a lista as vezes, por quê? É porque chamo 3 requisições de uma vez? Deveria chamar 1 por 1 ?

10 Respostas

J

Crie 3 functions no javascript pra cada chamada. No onClick do botão, chame as três. Isso é só pra facilitar o debug…

S

Criei já… Temos

CarregarRotas()
CarregarPontos()
CarregarReferencias()

Cada chamada faz uma requisição Ajax e carrega dados no maps (Api Google)
Mas as chamadas ajax ocorrem simultaneamente.

D

pra chamar uma por vez , uma funcão tera que chamar a outra

ex:

function funcao1(){
$.get(url, function(response, status, xhr) {  
    if (status == 'success') {  
    $.each(response.list, function(i, item) {  
           
        }  
    }
    funcao2();
}  
}


function funcao2(){
$.get(url, function(response, status, xhr) {  
    if (status == 'success') {  
    $.each(response.list, function(i, item) {  
           
        }  
    }
    funcao3();
}  
}

function funcao3(){
$.get(url, function(response, status, xhr) {  
    if (status == 'success') {  
    $.each(response.list, function(i, item) {  
           
        }  
    }
}  
}

e no onClick vc coloca apenas a funcao1

J

SCOOBY, se voce quisesse chamar simultaneamente então já funcionou correto? Se quer chamar em ordem a dica do Danilo resolve seu problema…

S

O problema é que sim, elas executam simultaneamente, porém, o problema é com o navegador Firefox.

O Firefox não carrega a lista de um dos ajax, já no chrome ou até mesmo no IE ele carrega.

Esse é o meu problema.

J

Vc tá usando o firebug??

Se sim, post ai pra gente a execução das chamadas…

S

Não posso… dados confidenciais… Só posso dizer que eu chamo os 3 ajaxs ( eles rodam ao mesmo tempo )

No chrome e no IE os dados carregam, no firefox as vezes carrega, as vezes não… Depende da vontade do navegador.

J

Você não disse se esta usando o Firebug, pq se estiver quando não carregar provavelmente ele vai capturar algum erro…Está muito subjetivo pra gente te ajudar…

S

Então… esse é o problema, não há erro. Não tem, ta tudo certo, roda tudo certo.
No chrome, no IE e as vezes no firefox.

É como se o firefox desse algum bug quando carrega mais de 1 lista em ajax. Ele não me retorna os valores carregados. Só isso.
Não há erro nenhum, tanto que se eu executo novamente ele carrega. (As vezes sim, as vezes não)

D

Acho que esse post deve ser útil para vc:

http://www.brunobayma.com/blog/74,jquery-ajax-sincronismo

Criado 24 de abril de 2013
Ultima resposta 29 de abr. de 2013
Respostas 10
Participantes 4