![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 7.04.2007 Ostrzeżenie: (0%)
|
Witam, mam taka funkcję js. Wszystko działa dobrze, jednak chciałbym jeśli odpowiedź zwórcona przez serwer (this.respone) != failed, to żeby cała funkcja MoveR zwracała true a w przeciwnym wypadku false. Przy takim kodzie jak poniżej zwraca undefined.
Kod function MoveR(name, name_min, name2, name2_min) {
var xmlhttp = new ajax("ajax/moveright/"); xmlhttp.method = "GET"; xmlhttp.onCompletion = function(){ if (this.response != \'failed\') { return true; } else { return false; } }; xmlhttp.runAJAX("photoname=" + escape(name) + "&photoname_min=" + escape(name_min) + "&photoname2=" + escape(name2) + "&photoname2_min=" + escape(name2_min)); } Ten post edytował Matiash 17.10.2010, 23:49:52 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%)
|
Funkcja MoveR zakończy swoje działanie zanim jeszcze wynik odpowiedzi będzie znany. Dzieje się tak dlatego, że ajax działą asynchronicznie. Nie możesz uzależnić wyniku zwracanego przez tą funkcję od wyniku odpowiedzi serwera. Możesz za to przekazać tej funkcji uchwyt do funkcji którą ona ma wykonać gdy odpowiedź będzie znana.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 7.04.2007 Ostrzeżenie: (0%)
|
Możesz za to przekazać tej funkcji uchwyt do funkcji którą ona ma wykonać gdy odpowiedź będzie znana. czyli rozumiem, że w funkcji onCompletion mam wykonać to co chcę wykonać w innej funkcji w zależności od this.response ? Nie wiem czy dobrze zrozumiałem (IMG:style_emoticons/default/smile.gif) Ten post edytował Matiash 18.10.2010, 09:36:19 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%)
|
czyli rozumiem, że w funkcji onCompletion mam wykonać to co chcę wykonać w innej funkcji w zależności od this.response ? Nie wiem czy dobrze zrozumiałem (IMG:style_emoticons/default/smile.gif) Kod function MoveR(uchwyt) {
// ... xmlhttp.onCompletion = function(){ uchwyt(parametry); }; // ... } MoveR(function(parametry){ alert(parametry); }); |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 08:55 |