| Autor | Zpráva | ||
|---|---|---|---|
| PHP_koule Profil * |
#1 · Zasláno: 13. 7. 2012, 21:12:06
Ahoj, chtěl jsem se zeptat, zda existuje nějaká fuknce, která mi vyvolá nějakou jinou funkci v nepřítomnosti jiného uživoatele.
Tzn. nastavím si datum odesílání mailů 14.7.2021 12:00 a budu chtít, aby se funkce vyvolala bez něčí přítomnosti. Tohle se zjišťuje špatně :-). Moc dík za info. |
||
| LaMMa Profil |
#2 · Zasláno: 13. 7. 2012, 21:14:24
Čo si predstavuješ pod pojmom nepřítomnosti jiného uživatele?
|
||
| Keeehi Profil |
#3 · Zasláno: 13. 7. 2012, 21:15:11
Hledej "cron"
|
||
| PHP_koule Profil * |
#4 · Zasláno: 13. 7. 2012, 21:19:16
Dík Keeehi. Zajímavé, že se o tom tady tolik nepíše.
|
||
| Keeehi Profil |
#5 · Zasláno: 13. 7. 2012, 21:23:06
PHP_koule:
Většinou totiž není potřeba. Na odesílání mailů v zadaný čas se však hodí. |
||
| PHP_koule Profil * |
#6 · Zasláno: 13. 7. 2012, 21:24:59
Jinak, když napíšu do google "cron php", tak ani na webu toho tak moc není.
|
||
| Keeehi Profil |
#7 · Zasláno: 13. 7. 2012, 21:34:39
PHP_koule:
Protože cron a php nemají spolu nic společné. Cron je program, který na linuxu běží na pozadí a v určitý čas spustí nějaký program. Na windows se tomu říká naplánované úlohy. Do googlu stačí tedy zadat "cron", případně "linux cron" |
||
| nemeja Profil |
#8 · Zasláno: 13. 7. 2012, 22:58:11
Tak teoreticky bys mohl vytvořit i svuj "cron" pomocí set_time_limit(), ignore_user_abort() a pak třeba sleep(), aby jsi mohl dělat periodičnost :)
|
||
| Darker Profil |
#9 · Zasláno: 13. 7. 2012, 23:10:08
Já jsem svého crona nedávno začal dělat na základě tohoto: Pokračování skriptu po ukončení spojení. Zatím mi ale pořád chcípá a nerozumí složitější syntaxi příkazů.
|
||
| PHP_koule Profil * |
#10 · Zasláno: 13. 7. 2012, 23:23:19
Takže ona existuje funkce, která se vyvolá, když úplně opustíte stránku?
|
||
| nemeja Profil |
PHP_koule:
Ne ty to zavoláš a tím, že nastavíš set_time_limit(0) tak script sám od sebe nikdy neskončí a pomocí ignore_user_abort nastavíš, že i když zabřeš tab, tak script se neuzavře. Pomocí sleep si ten script uspíš na tak dlouho, dokud se nemá spustit další příkaz |
||
| PHP_koule Profil * |
#12 · Zasláno: 13. 7. 2012, 23:39:33
nemeja: Já nyní jsem myslel získání offline nebo online stavu uživatele :-)
|
||
| Keeehi Profil |
#13 · Zasláno: 13. 7. 2012, 23:47:40
PHP_koule:
Tak to jedině v javascriptu. onbeforeunload |
||
| nemeja Profil |
tak to asi neexistuje, ale můžeš si ukládat do DB čas při akci uživatele a porovnávat to s aktuálním časem, pokud bude rozdíl víc jak 10 minut, tak ho prohlásíš za offline. Při čtení delšich článků můžeš aktualizovat čas v DB AJAXem
Keeehi: Jenže co to dělá, pokud natvrdo zavřeš prohlížeč? Nebo pokud zavřeš tab? |
||
| Keeehi Profil |
nemeja:
„Jenže co to dělá, pokud natvrdo zavřeš prohlížeč? Nebo pokud zavřeš tab?“ Tak si to vyzkoušej, ta událost se provede (alespoň co jsem zkoušel IE9 a nejnovější chrome). Problém je však jinde a to, pokud je javascript vypnutý, nebo pokud to prostě prohlížeč nepodporuje. Ano, není to stoprocentní, ale to už je dáno samo tím, že je to javascript. S tím se už musí dopředu počítat. |
||
| Darker Profil |
#16 · Zasláno: 14. 7. 2012, 00:08:07
Keeehi:
„Tak si to vyzkoušej, ta událost se provede“ Mě to hodně zlobilo. Zejména když jsem se právě snažil něco ukládat při opouštění stránky. |
||
| Keeehi Profil |
#17 · Zasláno: 14. 7. 2012, 00:28:23
Darker:
Ono zrovna vytváření požadavků není úplně nejrychlejší. Z vlastní zkušenosti vím, že po zavolání send() na XMLHttpRequest musí ještě stránka chvíli běžet a pak se teprva může třeba přesměrovat. Takže se musí dokončení eventu beforeunload prostě pozdržet. |
||
| PHP_koule Profil * |
#18 · Zasláno: 14. 7. 2012, 01:17:02
Já jsem online a offline stavy vyřešil updatem při aktivitě (načtení stránky) kliena.
|
||
| Darker Profil |
#19 · Zasláno: 14. 7. 2012, 16:40:46
PHP_koule:
„Já jsem online a offline stavy vyřešil updatem při aktivitě (načtení stránky) kliena.“ To je ideální. Keeehi: „Ono zrovna vytváření požadavků není úplně nejrychlejší.“ Vím, byla to spíš připomínka pro PHP_koule, kdyby se snažil nějak takhle zjistit, zda uživatel už na webu není. |
||
|
Časová prodleva: 13 let
|
|||
0