Hirdetés

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

  • martonx
    veterán

    Nekem az aszinkron ajaxxal az a bajom, hogy a success ágban kéne mindent lekezelni, vagy meghívni egy másik függvényt, míg amikor aszinkron csináltam, akkor tudtam írni ilyen függvényt ami a saját logikámnak jobban feküdt:

    Server.prototype.login = function(username, password){
    var result;
    $.ajax({
    url: "php/server.php",
    type: "POST",
    data: {
    action: "login",
    username: username,
    password: password
    },
    dataType: "json",
    success: function(response){
    if(response.success){
    result = response.success;
    }
    },
    async: false
    });
    return result;
    }

    A rossz eset nincs lekezelve, de az kényelmessé teszi a szinkron hívást, hogy vissza tudok térni belőle, ez alkalmazás szinten így néz ki:

    $("#loginBtn").click(function(){
    uName = $("#unameField").val();
    pwd = $("#pwdField").val();
    if(uName === "" || pwd === ""){
    alert("Missing username or password!");
    } else {
    if(server.login(uName, pwd) == 1){
    // akarmi
    client = new Client(uName, pwd);
    }
    }
    });

    Most ha mindent amit sikeres login után akarnék véghezvinni az ajax succes ágában hívótt metódusban kéne megcsinálni, az rossz lenne :D

    Az async false erősen kerülendő, mert olyankor minden egyéb js futást fagyaszt (pl. js animációknál ez nagyon gáz tud lenni)!!!
    Tudom nehezebb tisztán aszinkron megközelítéssel programozni, tegnap pl. nekem is erősen el kellett gondolkoznom, egy kliens oldali aszinkron hívásnál hiba esetén ismétlő logika megvalósításán (ami végül nem is lett bonyolult), cserébe nagyon megéri tisztán aszinkron programozni.

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