Jak vytvorit v jQuery udalost tak aby sla zavolat vicekrat rubrika: Programování: JavaScript

2 hasak
položil/-a 16.3.2018
 
upravil/-a 16.3.2018

Zdravim, mam webovou aplikaci, ve ktere ziskavam data ze zarizeni (arduino). Cely proces vytezeni dat trva asi cca 30sekund. Kdyz na webovkach kliknu na vytezit tak bezi proces s animaci progressbaru. V tu chvili chci kliknout aby se zacala tezit data z dalsiho a tim se zavola stejna udalost a funkce jako v prvnim pripade. Dojde k poruseni hodnot v promenych v dane funkci. Lze toto nejak resit? Pokud ano jak?

$("div#Devices").on ("click", "a.MiningData", function() {
    var minStart = false;
    $.ajax ({
        type: "POST",
        url: "mining.php",
        async: false,
        data: {"action":"mining", "address" : $dev.attr("data-addr")},
        success: 
             function (data) {
                 minStart=true;
                 ....
              },
    });
 
    if (minStart) {
         $.post("mining.php", {"action":"isFinish", "address" : $dev.attr("data-addr")}, function (data)) {
              ...
         }
    } 
 
    // zalozeni timeru ktery kazdych 5 sekund testuje jestli uz je dokoncenproces
});
odkaz
6 ivoszz
odpověděl/-a 16.3.2018

Ano, napsat danou funkci reentrantně, včetně obsluhy společných zdrojů jako třeba HTML stránka (např. nevkládat data do konkrétního html objektu, ale používat append). Podrobné vysvětlení přesahuje rámec této odpovědi, navíc není úplně jasné, co všechno se vlastně v té funkci dělá. Začal bych zkoumáním toho, proč je ten ajaxový požadavek synchronní.

Komentáře

  • hasak : Nemel bys nahodou typ na zdroj informaci nebo aspon heslovite co hledat? 16.3.2018

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.