Zavolání funkce pokud neběží AJAX request
- Landsman
- Člen | 152
Ahoj,
mám jednu funkci, která by mi měla po nějakém časem updatovat určitá data do DB a napadlo mě, že by se snadno mohli potkat 2 ajax requesty. Tj. 1. uživatelův a 2. ten automatický.
Dá se nějak ověřit, že právě neprobíhá jakýkoliv ajax request, aniž bych do všech funkcí musel přidávat nějaký vlastní var state?
dík
- Michal Hlávka
- Člen | 190
@CZechBoY já si myslím, že jste se nepochopili. On je nucený dělat ajax request, pro pohodlí klienta. A jelikož chce data aktualizovat, tak tam má nějakej delay. Ale zároveň se může stát, že tu aktualizaci spustí sám klient nějakou funkcí, kterou má. A nechce vytvořit zbytečně ajax request dvakrát do sekundy. Je už jedno, jestli mu to nic nesežere z výkonu nebo jo. Z puntičkářského hlediska by se tohle stát nemělo a já ho chápu.
@Landsman tvůj problém vyřeší takhle diskuze. http://stackoverflow.com/…ive-function
Editoval emptywall (29. 8. 2016 13:35)
- CZechBoY
- Člen | 3608
@emptywall jo, to jsem si taky myslel.. nicméně ta backend cache to pořeší (zamkne soubor a počká), otázka je jak se zachovat na frontendu (počkat na dokončení requestu a až potom spustit další odpočet pro další request nebo prostě házet refresh každých 10s bez ohledu na dobu trvání odpovědi serveru atd.).
- Michal Hlávka
- Člen | 190
@CZechBoY on backend vůbec řešit nepotřebuje, jinak by se to samozřejmě řešilo jak píšeš. Já bych to udělal tak, že automatický refresh, by se podíval, jestli není teď nějaký aktivní dotaz posílán na server. Pokud ano, resetuju delay a request ani neprovedu. Takže mě čeká dalších 10 minut. Pokud request proběhne manuálne ze strany klienta, tak zároveň delay startem requestu znova resetuje.