Keresés

Új hozzászólás Aktív témák

  • a2d2
    addikt

    Na sikerült végre. Eszembe jutott egy marha egyszerű ötlet és szerencsére működött.
    Ennyi volt az egész:

    JS első fele

    if koordinátákat kell számolni
    {
    function getLatLng(callback) {
    geocoder.geocode({'address': v_cim},function(results,status){
    if(status == google.maps.GeocoderStatus.OK) {
    v_koord_x = results[0].geometry.location.lat();
    v_koord_y = results[0].geometry.location.lng();
    callback(v_koord_x, v_koord_y);
    }
    });
    }
    getLatLng(function(v_koord_x, v_koord_y) {
    alert(v_koord_x);
    alert(v_koord_y);
    folytatas();
    });
    }
    else
    {
    folytatas();
    }

    function folytatas()
    {
    JS második fele
    }

  • a2d2
    addikt

    Szia!

    Na ránéztem a tegnapi alkotásokra és ahogy nézem próbáltam már minden félével (.when, .then, async: false, ...), de nem tudtam sehogy megállítani a főprogramot. Ez egy OL3 program, benne egy google maps-es geokódolással. A JS második fele kellene hogy megkapja a kiszámított koordinátákat:

    JS első fele

    function getLatLng(callback) {
    geocoder.geocode({'address': v_cim},function(results,status){
    if(status == google.maps.GeocoderStatus.OK) {
    v_koord_x = results[0].geometry.location.lat();
    v_koord_y = results[0].geometry.location.lng();
    ajaxvege = true;
    callback(v_koord_x, v_koord_y, ajaxvege);
    }
    });
    }

    getLatLng(function(v_koord_x, v_koord_y, ajaxvege) {
    alert(v_koord_x);
    alert(v_koord_y);
    });

    JS második fele

  • a2d2
    addikt

    Sziasztok!

    Remélem jó helyen járok AJAX kérdéssel.
    Az egész napom ráment ma egy program részletre, és csak nem sikerült működésre bírni.

    Gyorsan összefoglalom miről van szó:

    Adott egy javascript amiben van egy AJAX blokk. Az AJAX blokk elindul de közben a JS fut tovább a főszálon, pedig használnia kellene az AJAX-nál visszakapott paraméter értékeket.

    Ezt úgy próbáltam megoldani hogy létrehoztam egy ajaxvege = true változót a JS elején. Mielőtt elindulna az AJAX rész, ennek az értékét false-ra állítom, majd az AJAX végén visszállítom ezt az értéket true-ra. Az AJAX blokk után a főprogramban pedig meghívok egy ciklust, aminek az lenne a dolga hogy addig sleepeltesse a JS-t, amíg az ajaxvege = false.

    Úgy gondoltam hogy ez így teljesen működőképes, de kiíratva az ajaxvege változó értékét, az folyamatosan false értéket mutat és végteleníti a ciklust (holott maga az AJAX rész csak kb egy mp-ig fut alap esetben).

    Olyan mintha a JS nem venne tudomást arról hogy az AJAX közben módosítja a változó értékét.
    Úgy is próbáltam hogy csak simán módosítottam a változó értékét miután meglett a többi paraméter értéke, úgy is próbáltam hogy a paraméterek mellett callback-el visszaadtam a hívó félnek az ajaxvege változót is, de nem működik egyszerűen.

    Van valakinek ötlete mi lehet a gond?

    Köszönöm!

Új hozzászólás Aktív témák