Article View: pl.comp.lang.javascript
Article #39902Re: Problem z kolejnoscia wywolania funkcji
From: Radosław Bułat
Date: Mon, 15 May 2006 14:44
Date: Mon, 15 May 2006 14:44
56 lines
2687 bytes
2687 bytes
Pytanie: dlaczego tak się dzieje? Ano dlatego, że wywołanie funkcji
(metody) send jest asynchroniczne. Tzn. javascript wykona odpowiednie
rządanie, a w tym czasie Twój skrypt będzie wykonywał się dalej. Po to
jest właśnie ten mechanizm callbacka (czyli Twoja funkcja wynik_form()),
inaczej (bez asynchroniczności) po prostu czekałbyś na wykonanie
rządania, po czym zrobił coś ze zwróconymi danymi, a tak w czasie
wykonywania rządania (które przecież może chwilkę trwać) skrypt może
robić coś innego.
Wydaje mi się, że najprostszym rozwiązaniem będzie przesunięcie tego
alert (alert("2")) wprost do funkcji wynik_form().
Marcin Pawlak napisał(a):
> function wynik_form()
> {
> if(ajax_request.readyState==4)
> {
> if(ajax_request.status==200)
> {
> alert("1");
> }
> else
> {
> document.getElementById("log_msg").innerHTML ='Błąd zapytania AJAX';
> }
>
> }
> }
>
>
> function waliduj_form()
> {
> if(login_form.logowanie.value!='')
> {
> this.sprawdz=0;
> var
> formularz="?form=login&login="+login_form.login.value+"&password="+login_form.password.value;
>
> AjaxConnect('walidacja_form.php',formularz);
> alert("2");
>
> }
> else
> {
> alert('Zly form');
> }
> }
>
> Teraz tak, powyzszy kod wypisuje mi okienka alert, najpierw 2 a pozniej
> 1. Choc alert("2"); ustawiony jest po wywolaniu funkcji AjaxConnect,
> niby ona sie konczy bo zostaje wywolane open i send, ale nie zwraca
> jeszcze wynikow - alert("2");
>
> Co zrobic by po wywolaniu funkcji
> AjaxConnect('walidacja_form.php',formularz); program musial czekac az
> zostanie wykonane do konca wywolanie AJAX. Chcialbym zeby wyswietlilo 1, 2
Technical Details
Message-ID:
<e4a44s$78h$1@bobo.ds5.agh.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!localhost!not-for-mailReferences:
<e49i4k$65o$1@opal.icpnet.pl> <e49lp3$h73$1@bobo.ds5.agh.edu.pl> <e49p19$ef8$1@opal.icpnet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!localhost!not-for-mail From: Radosław Bułat <radarrek@poczta.fm> Newsgroups: pl.comp.lang.javascript Subject: Re: Problem z kolejnoscia wywolania funkcji Date: Mon, 15 May 2006 16:44:44 +0200 Organization: News serwer at news.ds5.agh.edu.pl Lines: 56 Message-ID: <e4a44s$78h$1@bobo.ds5.agh.edu.pl> References: <e49i4k$65o$1@opal.icpnet.pl> <e49lp3$h73$1@bobo.ds5.agh.edu.pl> <e49p19$ef8$1@opal.icpnet.pl> NNTP-Posting-Host: radarek.ds5.agh.edu.pl Mime-Version: 1.0 X-Trace: bobo.ds5.agh.edu.pl 1147704284 7441 192.168.29.34 (15 May 2006 14:44:44 GMT) X-Complaints-To: abuse@localhost NNTP-Posting-Date: Mon, 15 May 2006 14:44:44 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0.8 (X11/20060502) X-Accept-Language: pl, en-us, en In-Reply-To: <e49p19$ef8$1@opal.icpnet.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit