Autor Zpráva
tito100
Profil
dobrý den. ako můžem overit platnost spojenia z klientom(prehliadačom ktorý script vyvolal) ? respektive, ako zistim či klient stale čaká na odpoved.

potrebujem to na to, že daný script prebieha 10 minút. avšak klieta to už nebyvý čakat, tak dá zrušit stránku. ako zistím v PHP že tak učinil ? a ako by som momol script prerušit nech sa zbytočne neprevádza ešte 9 minut o tom čo uživatel prerušil spojenie.

script slúži v administrácii na zmenu a rozsekanie velmi moho obrázkou. dajme tomu že to může trvat týžden, avšak každý den ked pojdem z práce domou, tak chcem prácu prerušit. tak zrušim spojenie, script si má uložit posledne udaje, a ukončit.
Joker
Profil
tito100:
Na klientovi by mohl být skript, který (přes AJAX) pravidelně (třeba každou minutu) "pingne" server. No a skript by si pak čas od času ověřil čas posledního pingu od svého klienta a kdyby to bylo víc než něco, tak by skončil.

I když, přiznám se, přijde mi dost zvláštní, že by nějaký skript na serveru měl běžet takhle dlouho a přitom se ukončit pokud klient zavře prohlížeč.
tito100
Profil
Joker:
k tomu pingnutiu . ajax viem použivat. viem čo je pong, avšak neviem ako na to. existuje na to priamo niejaký príkaz javascriptu a v php niejaká globálna premenná ? alebo to musí JS zapísat do súboru a v php si to načítat.

I když, přiznám se, přijde mi dost zvláštní, že by nějaký skript na serveru měl běžet takhle dlouho a přitom se ukončit pokud klient zavře prohlížeč.
je to script len pre jediného užívatela. a to pre administrátora. a vykonáva sa len výnimoče. a to pri nahratí nových obrazových dát na server, čo sa vykonáva len prvý krát, a potom vo výnimočných prípadoch. obrazove data majú však kapaditu cca 1TB . po prevedení scriptu sa strojnásobia. server je samostatný , z datami a jednou domenou, domena sa v čase prevadzania scriptu pre verejnost zablokuje. čiže v tomto prípade, to tak zvláštne nieje :-) . btv, to či sa to prevedie na serveri alebo localhoste posúdi techik. každopade to tak pripravit musím
a mohol by som to sice podporit ajaxom, a script tak vyvolavat viackrát z tým že to vykoná vždy len daný súbor. avšak tu sa hodne predĺži čas. kedže sa jedna o tisice suborov. čiže minimalne stovky zbytočných čakaní na komunikaciu
Joker
Profil
tito100:
viem čo je pong
pong je taková strašně stará hra, tohle je ping :-)
Ale nebyl by to klasický ping, prostě by na stránce byl celkem triviální Javascript, který jediné co by dělal, že by v pravidelných intervalech zavolal nějaký serverový skript.
Dotyčný skript by taky byl triviální, jediné co by dělal, že při každém zavolání by na určité místo (v databázi nebo někde) uložil aktuální čas.

No a ten hlavní skript by se prostě čas od času vždycky podíval na to určité místo a pokud by nebylo "moc dlouho" aktualizované, tak by skončil.

ad ten skript:
No já si umím představit nějaký údržbářský mega-skript, jen u tohohle typu skriptů bych nečekal, že se zruší při zavření okna- spíš bych čekal, že administrátor ho prostě pustí, už se o něj nestará a případně se pak jen podívá do nějakého logu, jestli to proběhlo v pořádku.
AM_
Profil
v JavaScriptu existují funkce setInterval() (spouští pravidelně) a setTimeout() (spouští jednou). Já raději používám to druhé a uvnitř funkce nastavím nový timeout, připadá mi to jednodušší, než režie na rušení intervalu. Tak můžeš dávat serveru pravidelně vědět, že se pořád něco děje. Nevím, jestli SESSION je thread-safe, tedy když něco AJAXem uložíš do SESSION, jestli se to projeví už v probíhajícím skriptu. To si vyzkoušej. Bylo by to nejefektivnější, pokud to nejde, příznak ukládej do DB nebo možná lépe do souboru jednoznačně identifikovaného pro daného uživatele.
Samozřejmě cennější než tento mechanismus by bylo AJAXem uživatele průběžně informovat, jak jsi na tom se zpracováním, ale obě tyto věci se dají jednoduše spojit.
tito100
Profil
dakujem za rady :-)

s tým užívatelským prostredím pre priebežné informácie . počital som že ho nespravím, lebo je to poprve dost zbytočné na to kolko je tam prace, kedže sa toto bude využívat len raz. a potom len v prípade že odijde server a budu sa musiet nahrat nanovo data. a podruhé som to chcel spravit tak že budem znova a znova volat daný script, čím by sa čas nesmierne predĺžil.
kedže to spravím cez ten ajax, a spravim to zistovanie pripojenia uživatela cez subor. tak rovno možem do toho subora zapisovat aj predbežne informacie. tym odpada problem z tým že script sa bude prerušovat. a tak to informačne okno už můžem spravit
:-)
AM_
Profil
Přesně tak, největší patlání je na tom s tím AJAXem, jakmile ti tam ten AJAX poběží, obojí už je opravdu hračka. Můžeš to zkusit přes jQuery, sice jsem s tím zatím nedělal, ale koukal jsem na to a vypadá to dost jednoduše.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: