🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #39902

Re: Problem z kolejnoscia wywolania funkcji

#39902
From: Radosław Bułat
Date: Mon, 15 May 2006 14:44
56 lines
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-mail
References: <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