Zadejte hledaný výraz...

Prodleva MySQL insert – AJAX

Tomáš Bláha
verified
rating uzivatele
27. 6. 2015 10:15:41
Dobré dopoledne,
řeším problém se svou stránku, která má za úkol sbírat data z formuláře a Ajax request je ukládá do MySQL.
Momentálně funguje tak, že ve chvíli, kdy uživatel zaškrtne radiobutton, zavolá se JS, který odověď uloží, skryje DIV a zobrazí DIV s další otázkou. A tak stále dokola. Nicméně pokud na odpovědi klikám "rychle", některé odpovědi se neuloží.
Lze tomu zabránit?
27. 6. 2015 10:15:41
https://webtrh.cz/diskuse/prodleva-mysql-insert-ajax/#reply1122152
Denis Ulmann
verified
rating uzivatele
(9 hodnocení)
27. 6. 2015 11:23:59
Co takhle zkusit pomocnou proměnou bool, která se při kliknutí změní na true a po vrácení odpovědi zpět se zase změní na false a samozřejmě když klikne na odpověď a bool bude true, tak se request neodešle. K tomu všemu pod ten radiobutton dát třeba nějaký loader, aby uživatel věděl, že se něco děje (ukládání). Nejsem front-endista, ale řešil jsem takhle všechny flooding kolize.
27. 6. 2015 11:23:59
https://webtrh.cz/diskuse/prodleva-mysql-insert-ajax/#reply1122151
Tomáš Bláha
verified
rating uzivatele
27. 6. 2015 11:29:39
Děkuji za radu, zkusil jsem to, ale proměnná se mi opět na true změní, operace, která má proběhnout při success se tedy evidentně odehraje, ale občas se pořád odpověď neuloží.
Jinak loading animaci mám, jen jsem její ovládání odstranil pro přehlednost.
---------- Příspěvek doplněn 27.06.2015 v 11:53 ----------
Tak jsem se nakonec na základě tvé rady dobral k řešení, ačkoliv trochu oklikou:
Chyba byla v tom, že jsem po kliknutí inputy "nevypnul" (disabled) a byly stále aktivní. Proto uživatel mohl teoreticky zavolat AJAXovou událost ještě dříve, než se ta původní dokončila.
Nastavil jsem, že po kliknutí se všechny inputy vypnou a zapnou se, až jakmile se AJAX dokončí na zavlání SUCCESS.
Nyní již jde vše jako po másle.
Děkuji moc
27. 6. 2015 11:29:39
https://webtrh.cz/diskuse/prodleva-mysql-insert-ajax/#reply1122150
Pro odpověď se přihlašte.
Přihlásit