Stránka 1 z 1

Ajax - čekání na výsledek

Odeslat příspěvekNapsal: 23. 3. 2018 15:19
od Zbynas
Dejme tomu, že mám button (třeba s názvem PLUS), na který když kliknu, pomocí ajaxu na jiné stránce provedu mysql příkaz (přičtu něco do databáze). Do doby, než se mysql příkaz provede potřebuji, aby by se button zneaktivnil - nešlo na něj kliknout. Jak toho dosáhnout? Jak zjistím, že mysql příkaz už provedl? Jasně že si můžu něchat něco vracet z té oné stránky. Ale jak to kontrolovat za běhu tak, abych ve chvíli, kdy se tak stane, to zjistil?

Snad mě chápete :)

Re: Ajax - čekání na výsledek

Odeslat příspěvekNapsal: 23. 3. 2018 15:27
od Wikan
Budeš se pravidelně dotazovat serveru, jestli už je to hotovo.

Re: Ajax - čekání na výsledek

Odeslat příspěvekNapsal: 23. 3. 2018 15:37
od JirkaVejrazka
Neda mi to - to ta operace pricitani trva tak dlouho, ze stoji za to "zamykat" nejaky button?

Re: Ajax - čekání na výsledek

Odeslat příspěvekNapsal: 23. 3. 2018 15:43
od Zbynas
Ano, někdy bohužel dojde na serveru k dost velké, někdy i 10s prodlevě. Je to málokdy, nebudu kvůli tomu měnit hosting, Ale prostě potřebuju to vyřešit, protože neumětelové klikaj na to jak blázni a netuší, že se to načítá :D Ve výsledku se to pak provede třeba 5x ..

Jak se mám dotazovat? Z té externí stránky? Nebo? Prostě ta externí stránka mi vrátí mysql výsledek, že je hotovo, ale co a jak mám poslat na hlavní stránku a jak to na ní zpracovat?

Re: Ajax - čekání na výsledek

Odeslat příspěvekNapsal: 23. 3. 2018 15:49
od JirkaVejrazka
Ty chces "zneaktivnit" primo ten button, kterym se startuje tak akce pridavani do databaze? No tak to jednoduse - jeho kliknutim spustis JavaScript, ktery nastavi tomu buttonu priznak "disabled" a provede Ajax call. No a az ten Ajax skonci, tak ten priznak "disabled" zase zrusis. Nebo jsem te pochopil spatne?

-- 23. 3. 2018 14:50 --

Mimochodem, nazvat nekoho kdo se chova normalne "neumetelem" je docela odvaha. Oni nemohou vedet, ze mas tak pomaly system. Vazne neni rozumny duvod, proc by mela aplikace neco zpracovavat 10 sekund.

Re: Ajax - čekání na výsledek

Odeslat příspěvekNapsal: 23. 3. 2018 16:51
od Zbynas
A jak zjistím, že již ten Ajax proběhl?

Mám hosting u wedos. Občas se prostě stane, několikrát denně, že čekám na request z jejich mysql serveru i těch 10 sec. Možná bude chyba i u mě, počtem mysql dotazů, které na server odesílám. Proto dělám celý systém odznovu a zrovna teď jsem u tohohle problému :D

Tohle jsem někde zkopíroval a používám doteď. Bohužel nejsem schopnej tomu jaksi rozumět. Rozumím jen tomu, že do toho mrsknu url a post data a ono se to pošle.

Kód: Vybrat vše
function ajax(url,stringos) { 
   
       

var http_request = false;
       
var string = document.getElementById(stringos).value;
       
var request = "string="+string;

       



if (window.XMLHttpRequest) {
           
   http_request = new XMLHttpRequest();
        }
  else
   if (window.ActiveXObject)
   {
           
     try
     {
             
      http_request = new ActiveXObject('Msxml2.XMLHTTP');
           
     }
     catch (eror)
     {
             
      http_request = new ActiveXObject('Microsoft.XMLHTTP');
           
     }
 
       }

   

http_request.onreadystatechange = function() { zpracuj(http_request); };
 
http_request.open('POST',url, true);
       
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
       
http_request.send(request);
   }

   


function zpracuj(http_request) {
       
   if (http_request.readyState == 4) {
           
      if (http_request.status == 200) {
               
      document.getElementById('vysledek').innerHTML = http_request.responseText;           
           
       } else
      { alert('Chyba');
}
       
       }
   
}


Re: Ajax - čekání na výsledek

Odeslat příspěvekNapsal: 23. 3. 2018 17:01
od JirkaVejrazka
To vypada jako Ajax z roku 2006 :) Nepouzivas nahodou neco jako treba jQuery?

Ale i kdyby ne, cele to mas jako na dlani. Pred radek "http_request.send(request)" das neco, cim zakazes ten button (staci mu v DOM dat priznak "disabled").

No a funkce zpracuj se zavola, az kdyz ten Ajax dobehne, takze nekam tam das zase povoleni toho buttonu.

Re: Ajax - čekání na výsledek

Odeslat příspěvekNapsal: 23. 3. 2018 17:07
od Zbynas
jo tak :) Díky moc, pecka :)