javascript (szinkron ajax) kérdés

Hi!

Nem nagyon szoktam itt programozási kérdést feltenni, de már 3 hete keresek valamire megoldást - eredmény nélkül -, ráadásul nyílván teljesen triviális az egész.

A célom az lenne, hogy ha egy oldalon egy gombra rákattint valaki, akkor fusson le egy javascript függvény, ami egy

 ok 

nevű változónak értéket ad, és ez a változó 3 részből tevődik össze:

1)

 ok += 'a'; 

2) Az adott szerveren, webcímen keresztül elérhető fájl tartalma (

 5 

);
3)

 ok += 'b'; 

tehát az

 ok 

változó értéke

 ok += 'a5b' 

legyen.

Ez így nem is tűnik bonyolultnak, viszont az általam alkalmazott módszerrel, az aszinkronitás miatt az ok változó értéke csak 'ab' lesz, és az 5- ös később tevődik hozzá, szóval jó esetben is 'ab5'.

A kódom itt található: kód

Köszi.

Hozzászólások

A) nem asszinkron hívást indítasz: request.open("GET", url, false);, vagy
B) az ok += 'b'; kódot a state_change függvénybe építed be.

Köszi a választ.

Az A) esetben, tehát ha

 request.open("GET", url, false); 

- t használok, nem tudom mi miatt, de máshogyan működik a kód. Eredetileg 2 alert van benne, és mindkettő fel is pattan

 true 

esetén, viszont

 false 

esetén csak a t- beli alert bukik fel. Ahogy nézem, amiatt, mert ebben az esetben nem fut le az

 okvaltozik() 

függvény, mivel nem is kerül bele az 52. sorban kezdődő

 if 

feltételbe.

Jobban megvizsgálva az 50. sorban lévő

 case 4: 

- be sem talál bele. Van esetleg ötleted, hogy miért nem? No és hogy hogyan lehetne úgy megírni, hogy beletaláljon?

Köszi.

Ha szinkron módon hívod (false), akkor nem hívogatja az onreadystatechange függvényt, tekintve hogy addig ott áll a híváson amíg meg nem jön a válasz. Tehát a függvényed tartalmát bemásolhatod az ajax hívás mögötti részre ... (persze hibát/státuszt azért kell ellenőrizni)