Sprawdzenie czy Ajax zakończył pracę - w innej funkcji

0

Witam,
mam drugi problem. Mam tak:

function A()
{
// tutaj wykonuje jakieś zapytanie ajaxem i pobieram wynim jako success: function(){ ... }
}

function B()
{
A()
}

Jak widać funkcja A() odpala ajax i po jego wykonaniu wykonuje jakąś funkcję np: wyświetla wynik. Funkcja B() wywołuje funkcję A().

I teraz moje pytanie brzmi. Czy w kodzie funkcji B() mogę sprawdzić czy ajax skończył pracę ? Chodzi mi o to bym mógł wykonać w funkcji B() zawartość success: function(){ ... } ?

próbowałem poprzez .ajaxSuccess(), .ajaxStart(), .ajaxStop() i nic nie daje. Zna ktoś rozwiązanie ?

0

próbowałem poprzez .ajaxSuccess(), .ajaxStart(), .ajaxStop() i nic nie daje. Zna ktoś rozwiązanie ?

Programowanie na zasadzie chybił-trafił? Genialne :D

Chodzi mi o to bym mógł wykonać w funkcji B() zawartość success:

Znając życie nie będziesz mógł. Możesz sprawdzić czy się wykonało - ale prawdopodobnie nie, i co wtedy?
Podejrzewam, że coś robisz od podstaw źle, skoro tak kombinujesz.

Jeżeli może być na globalce to (samo sprawdzenie) takie coś:

var ajaxWykonany = false;
function A() {
 $.ajax({
   success: function() { ajaxWykonany = true; }
 });
}

function B() {
  if (ajaxWykonany) { alert(666); }
}
0

Siema,
to prawda, chybił trafił xD

Choć muszę powiedzieć że zapomniałem o najprostszej metodzie jaką podałeś ... wartość globalna.

Generalnie mój kod jest taki jak to co podałeś ale bez wartości globalnej. Ajax wykonuje jakieś zapytanie i czekam na "success". Chodzi o to że nie chcę ingerować już w ten kod (funkcji A), a muszę dopisać po poprawnym wykonaniu całości, dodawanie nowego pola w select.

A znasz może inne rozwiązanie ?

0

wywołaj funkcję B() na samym końcu ajaxowego success ?

0

No właśnie to jest ten problem że nie mogę.

funkcja A() nie może już zostać zmieniona, a w funkcji B() przetwarzam dane.

0

No to w B musisz w kółko co parę(dziesiąt/set) ms sprawdzać czy ajax się wykonał (metodę Ci podałem, ale zauważ, że ona TEŻ wymaga zmiany success w ajaxie). Inaczej nie będzie, no bo jak?

0

Siema,
tak sądziłem że muszę zapętlić. Co do ajaxa to tam nic nie ruszam i mam success.

Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1