Zadejte hledaný výraz...

Odeslání požadavku přes AJAX + informace o stavu zpracování

Taps
verified
rating uzivatele
(118 hodnocení)
8. 4. 2022 08:47:17
Zdravím, pomocí ajaxu posílám požadavek na webovou službu. Zpracování trvá nějaký čas a tak bych potřeboval poradit, jak bych mohl uživatelům zpět na stránku posílat informaci kolik % je zpracováno, případě stavové zprávy typu (Nahrávám soubory, převádím soubor, získávám data)
Děkuji
8. 4. 2022 08:47:17
https://webtrh.cz/diskuse/odeslani-pozadavku-pres-ajax-informace-o-stavu-zpracovani/#reply1500601
David Musil
verified
rating uzivatele
(69 hodnocení)
8. 4. 2022 10:06:28
Ja myslim, ze kdyz trosku pohledas na Google nebo treba Youtube, urcite dostanes to, co hledas.
"Ajax upload progress bar" apod.
Uploading files with a progress bar and percentage - AJAX XMLHTTPRequest…
8. 4. 2022 10:06:28
https://webtrh.cz/diskuse/odeslani-pozadavku-pres-ajax-informace-o-stavu-zpracovani/#reply1500600
Taps
verified
rating uzivatele
(118 hodnocení)
8. 4. 2022 13:12:33
Zkoušel jsem níže uvedené, ale v konzoli mi naběhlo jen číslo 1
8. 4. 2022 13:12:33
https://webtrh.cz/diskuse/odeslani-pozadavku-pres-ajax-informace-o-stavu-zpracovani/#reply1500599
crs
verified
rating uzivatele
(1 hodnocení)
10. 4. 2022 13:52:04
Napsal Taps;1643217
Zdravím, pomocí ajaxu posílám požadavek na webovou službu. Zpracování trvá nějaký čas a tak bych potřeboval poradit, jak bych mohl uživatelům zpět na stránku posílat informaci kolik % je zpracováno, případě stavové zprávy typu (Nahrávám soubory, převádím soubor, získávám data)
Děkuji
Pro uploadování souboru z prohlížeče lze v určitých případech použít informace, které poskytuje webserver. Například pro servery s PHP viz zde. Tam musí být povolena direktiva session.upload_progress.enabled, plus nastaveno několik dalších direktiv. Funguje to tak, že poté, jak spustíš upload, se periodicky pomocí AJAXu doptáváš na stav uploadu (do formuláři vložíš i hodnotu session.upload_progress.name, pomocí které rozlišíš, o který stav uploadu se jedná, zpracovává-li jich server současně víc). Webserver pak stav udržuje v session proměnné $_SESSION – to je pole s položkami jako , a , což je zase pole s nahrávanými soubory, kde každý má původní jméno, dočasné jméno, stav, chybový kód a též , pokud chceš využívat i stav u každého jednotlivého souboru. Kolik procent je nahráno, zjistíš jednoduše jako * 100 / (popřípadě dělíš filesize(každého jednotlivého souboru)).
Jak jsem řekl, fungovat to bude, pokud to webserver podporuje, je na to nastaven, a upload potrvá dostatečně dlouho, abys paralelně s tím stíhal periodicky spouštěl AJAXové dotazy, které se ti vrátí zpět ke klientovi a ty mu nějak zobrazíš výsledek.
To celé se týká pouze uploadu. O tom, v jaké fázi jsou nahrané soubory zpracovány, o tom se nedozvíš nic. Ledaže by daná webová služba nabízela nějaké API, na které by ses na to mohl v reálném čase dotazovat.
10. 4. 2022 13:52:04
https://webtrh.cz/diskuse/odeslani-pozadavku-pres-ajax-informace-o-stavu-zpracovani/#reply1500598
brooks
verified
rating uzivatele
11. 4. 2022 07:01:02
Pokud například uploaduješ soubor s daty, která postupně zpracováváš, tak běžný postup je takový, že si do databáze zapíšeš informace o datech (minimálně celkový počet záznamů a zpracovaný počet záznamů) a postupně je aktualizuješ při zpracovávání. Stránka s progressbarem se periodicky dotazuje nějaké miniapi k tomu určené (stačí vracet třeba jednoduchý json s celkovým/zpracovaným počtem záznamů, případně i s informací o uploadu souboru), která vrací info z db a to převádí do grafické podoby.
11. 4. 2022 07:01:02
https://webtrh.cz/diskuse/odeslani-pozadavku-pres-ajax-informace-o-stavu-zpracovani/#reply1500597
Pro odpověď se přihlašte.
Přihlásit