Notifikace o dlouho trvající operaci na pozadí rubrika: Programování: JavaScript

položil/-a 23.7.2014
Zdravím,
Řeším problém kdy mám v prototypu nějakou uživatelskou akci, po které se na pozadí (na serveru) provádí delší operace (aktuálně 30s, předpoklad je cca 1-5 min) a chtěl bych uživatele průběžně informovat o stavu.
Zároveň bych chtěl zohlednit i to, když uživatel z dané stránky (kde spustil event) odejde na jinou stránku, tak mít možnost stále nějakým způsobem ukazovat notifikace (není podmínkou, ale řeším i to kdy odejde a znovu přijde zpět)
Jak by jste podobnou situaci řešili ? Serverside je psaná v PHP, klientskou část pak z větší části v Angularu.
díky moc :)
odkaz
6
Žížala

odpověděl/-a 24.7.2014
Tohle řeším tak, že
- Takto dlouho zpracovávaný proces běží jako shell script, ne jako web page
- Průběžně si ukládám stav zpracování do tabulky, vazba pomocí sessionid a hash pro daný task
- Tím pádem může uživatel stránku opustit, může mít více procesů, mám tam omezení na 1 process pro free, 3 pro basic a 10 pro profi ...
- Pro ověřování stavu mám postaveni API, kam se dotazuju pomocí AJAXu (JSON) a průběžně zveřejňuji stav v pomocné plovoucí liště
Komentáře
-
Twista : Trošku jsem se chtěl poolovaní vyhnout, ale určitě to je taky možnost. Díky za odpověď — 24.7.2014
-
tuma.vojta : Pokud nechceš používat poolování, tak už zbývají jenom ty WebSockety. — 24.7.2014
-
Anonym : Websockety su overkill, v pohode staci "Server Side Events". Pracu zadas obycajnym POST requestom, cez SSE server posiela progress/notifikacie. Nic tazke v AngularJS, mam to uz vyskusane. — 24.7.2014
-
Twista : Díky @srigi za nasměrování - určitě se na to podívám. — 25.7.2014
-
bazo : @srigi vies posielat SSE aj z php? — 7.8.2014
-
maki : @bazo http://www.w3schools.com/html/html5_serversentevents.asp je tam server-side code example — 19.8.2014
-
petersirka : SSE nepodporuje IE. — 21.8.2014
Pro zobrazení všech 5 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře