Autor Zpráva
Nosko
Profil *
Zdravím všetkých, riešim zrovna jeden problém a potreboval by som helfnuť.Ide o toto:

robím jeden "systém", ktorý ma za úlohu nasledujúcu vec:
1)
pracovník v práci keď odchádza na prestávku tak spustí jednoduchú html+js+ajax stranku, na ktorej zadá čas na ktorý sa vzďaluje z predajne, pošle a na obrazovke sa začne odpočítavanie.Do hidden sa uložia údaje typu: kto, kedy, nakoľko.....
2)
Keď sa vráti mal by tento odpočet prerušiť tlačidlom stop, ktoré keď stlačí tak sa už spomínané info(kto...) pošlú na server a tam sa spracujú(či zamestnanci naozaj dodržujú prestávky,štatistiky....)
výcuc kódu

httpRequest.onreadystatechange = function() { alertContents(httpRequest); };
httpRequest.open('GET', './casovac.php?udaje='+kto+'|'+odch+'|'+new Date()+'|'+kolko+'|'+Math.round(eval(new Date().getTime()-real)/1000/60), true);
//tvar kto:cislo predajcu odch:kedy odisiel na pausu
httpRequest.send(null);

každému zamestnancovi sa vytvorí súbor do ktorého sa info zapisujú, príklad:

0903255353|Fri Aug 03 2007 15:55:33 GMT 0200 (Central Europe Standard Time)|Fri Aug 03 2007 15:56:42 GMT 0200 (Central Europe Standard Time)|3|1
0903255353|Fri Aug 03 2007 16:05:15 GMT 0200 (Central Europe Standard Time)|Fri Aug 03 2007 16:05:18 GMT 0200 (Central Europe Standard Time)|35|0

Tu sa dostávam k jadru problému, čo ked je zamestnanec "lenivý" stlačiť to tlačidlo stop a namiesto toho vypne celý prehliadač. Nič sa nepošle a tým pádom je to celé zbytočné. Skúšal som už aj rôyne onunload ale nefungujú spolahlivo vo všetkých browseroch. Neexistuje niečo ako zistiť kedy človek vypne celý browser(nejaký ajax,js....)
Prípadne ako bz ste to riešili Vy?!
Ďakujem za odpoveď ;)
Mike8748
Profil
na tej strance dat timer, kterej kazdou minutu udela ajax request, podle serveru zpravu typu "zamestnanci cislo XXXXX zbyva jeste YY minut". v okamziku kdy zavre stranku, tak dalsi zpravy nebudou, takze z DB zjistit kdy prestala stranka pocitat (stejna udalost jako pri zmacknuti STOP)
Nosko
Profil *
Díky moc, toto som tiež zvažoval ale zdalo sa mi lahšie urobiť to cez ten onunload(vždy by bol len jeden request, takže ľahko spracovatelné). Ak som ťa dobre pochopil tak to mám spraviť nejak takto:


document.setTimeout("odosliRequest()", minuta);
...

na tomto sa mi nepáči práve to, že každým requestom sa uloží záznam do súboru, ale to by sa nejak spravilo(vlastne možem elegantne načítať posledný riadok a prepísať hodnotu a uložiť) WOW, dobrý nápad.
Dikes moc ;)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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