Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Probleme timonerie schimbator sau...

Numar strada gresit in contractul...

Centrala Ariston Cares Premium 24...

La multi ani @Klasse!
 La multi ani @shmecherul!

pareri ipad 6-2018- flip

Cum au aparut supermarketurile in...

Campanii mincinoase Carrefour
 Tv toshiba defect

touchscreen navigatie stricat

bonsai - de unde?

Resetare Bonus Malus
 Unitatea optica DVD-rw absenta pe...

Problema configurare Wireguard

Dozatoare de apa, cu alimentare d...

Intarziere aterizare avioane
 

Cronometru care sa nu se reseteze dupa refresh

- - - - -
  • Please log in to reply
17 replies to this topic

#1
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005
Am un script in php in care vreau sa poti face anumite lucruri intr-o perioada de timp. Sa zicem 20 de minute. Vreau sa pun un cronometru care sa nu se reseteze dupa ce dau refresh la pagina. Am incercat un ceas in javascript dar se reseteaza dupa refresh, ceea ce este logic.
Am facut o data la un script pentru chestionare online, unde iti arata cat timp mai ai sa poti termina chestionarul, apoi te trimitea la pagina cu rezultate. Acolo erau afisate toate intrebarile pe o singura pagina si nu se schimba/reimprospata. Dar aici se schimba paginile si nu mai tine treaba.

Multumesc.

#2
The@ngel

The@ngel

    Active Member

  • Grup: Members
  • Posts: 1,225
  • Înscris: 07.08.2003

View PostCuculetzu, on Aug 27 2008, 12:57, said:

Am un script in php in care vreau sa poti face anumite lucruri intr-o perioada de timp. Sa zicem 20 de minute. Vreau sa pun un cronometru care sa nu se reseteze dupa ce dau refresh la pagina. Am incercat un ceas in javascript dar se reseteaza dupa refresh, ceea ce este logic.
Am facut o data la un script pentru chestionare online, unde iti arata cat timp mai ai sa poti termina chestionarul, apoi te trimitea la pagina cu rezultate. Acolo erau afisate toate intrebarile pe o singura pagina si nu se schimba/reimprospata. Dar aici se schimba paginile si nu mai tine treaba.

Multumesc.
Tii minte un "ceas" si pe server. Si de fiecare data cand afisezi o pagina ceasul din javascript porneste cronometrarea de la ce a primit de pe server.

#3
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Altfel spus, salvezi intr-un tabel intr-o baza de date utilizatorul si timpul cand a inceput chestionarul. La fiecare accesare generezi dinamic codul javascript necesar pe baza acelui timestamp. La trimiterea formularului de catre utilizator spre procesare, verifici iar daca a depasit timpul. Toate aceste lucrururi sunt necesare datorita protocolului HTTP, care este stateless.

#4
The@ngel

The@ngel

    Active Member

  • Grup: Members
  • Posts: 1,225
  • Înscris: 07.08.2003

View PostOriginalCopy, on Aug 27 2008, 14:15, said:

Altfel spus, salvezi intr-un tabel intr-o baza de date utilizatorul si timpul cand a inceput chestionarul. La fiecare accesare generezi dinamic codul javascript necesar pe baza acelui timestamp. La trimiterea formularului de catre utilizator spre procesare, verifici iar daca a depasit timpul. Toate aceste lucrururi sunt necesare datorita protocolului HTTP, care este stateless.
La ce o trebuii sa salvezi intr-o tabela ... nu stiu. (Cred ca e o manie intre tinerii programatori sa foloseasca bazele de date. Li se pare cool).
Pentru ce are nevoie Cuculetzu e suficient sa tina pe sesiune o varibila. Daca ala inchide browser-ul, la ce ma intereseaza pe mine sa stiu din baza de date ca a inceput testul la nu stiu ce ora in nu stiu ce zi ?

#5
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005

View PostThe@ngel, on Aug 27 2008, 14:31, said:

La ce o trebuii sa salvezi intr-o tabela ... nu stiu. (Cred ca e o manie intre tinerii programatori sa foloseasca bazele de date. Li se pare cool).
Pentru ce are nevoie Cuculetzu e suficient sa tina pe sesiune o varibila. Daca ala inchide browser-ul, la ce ma intereseaza pe mine sa stiu din baza de date ca a inceput testul la nu stiu ce ora in nu stiu ce zi ?

Am luat un script de pe net care contorizeaza minutele, secundele pana la o anumita data. Am initializat o sesiune care pastreaza data si ora care va fi peste 30 de minute. Apoi in scriptul Javascript am pus la data dorita acea sesiune. Acum mai caut o chestie, cand s-au terminat acele minute sa se schimbe pagina automat, adica sa trimita la o pagina cu rezultate.

#6
The@ngel

The@ngel

    Active Member

  • Grup: Members
  • Posts: 1,225
  • Înscris: 07.08.2003

View PostCuculetzu, on Aug 27 2008, 14:41, said:

Am luat un script de pe net care contorizeaza minutele, secundele pana la o anumita data. Am initializat o sesiune care pastreaza data si ora care va fi peste 30 de minute. Apoi in scriptul Javascript am pus la data dorita acea sesiune. Acum mai caut o chestie, cand s-au terminat acele minute sa se schimbe pagina automat, adica sa trimita la o pagina cu rezultate.
Probabil ca in javascript se foloseste setTimeout sau setInterval. Ambele functii apeleaza o functie de a ta. In acea functie javascript, in functie de conditiile pe care le vrei folosesti:
window.location

#7
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005
Ideea e ca nu functoneaza chiar corect... Cand se reseteaza sesiunea apar cele 29 de minute dar secundele nu incep de la 59. Secundele raman cele care sunt la ceasul de la calculator. Adica ceasul de pe site trebuie sa porneasca de la 29:59 . Minutele sunt ok, dar secundele sunt ca cele de la ceasul calculatorului, daca la ceas mai sunt 12 secunde pana la urmatorul minut, asa apare si pe site 29:12. <br>

#8
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostCuculetzu, on Aug 27 2008, 14:18, said:

Ideea e ca nu functoneaza chiar corect... Cand se reseteaza sesiunea apar cele 29 de minute dar secundele nu incep de la 59. Secundele raman cele care sunt la ceasul de la calculator. Adica ceasul de pe site trebuie sa porneasca de la 29:59 . Minutele sunt ok, dar secundele sunt ca cele de la ceasul calculatorului, daca la ceas mai sunt 12 secunde pana la urmatorul minut, asa apare si pe site 29:12. <br>
Ceasurile nu sunt sincronizate. Foloseste setInterval la o secunda si fa impartirile de rigoare.

Javascript ruleaza pe client, deci e normal sa fie asa.

#9
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005

View PostOriginalCopy, on Aug 27 2008, 15:22, said:

Ceasurile nu sunt sincronizate. Foloseste setInterval la o secunda si fa impartirile de rigoare.

Javascript ruleaza pe client, deci e normal sa fie asa.

Pai aveam in gand sa scad secundele actuale din 60 si sa le adun la data, dar scriptul nu accepta si secundele, poti pune anul, luna, ziua, ora si minutele. Ugh. Trebuie sa caut altul. Si asta afiseaza bine, fara delay.

#10
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005
Still no solution.
Aceeasi chestie si cu alte scripturi, secundele. Ce pot sa mai fac?

Edit: Am rezolvat si aceasta problema. Mai ramane cea cu actiunea pe care terbuie sa o faca dupa ce se termina ceasul.

Edited by Cuculetzu, 27 August 2008 - 15:50.


#11
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005
Multumesc mult, baieti!

Am rezolvat si ultima problema.
Am reusit folosind windows.location pentru a ma duce la pagina cu rezultate unde le citesc folosind sesiunile initializate in prima pagina.

#12
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005
Stiti cum pot verifica cat timp a stat un user pe site? Gasisem la un moment dat un script pe net, dar nu il mai gasesc acum cand am nevoie. Vreau sa aflu timpul in minute si secunde de cand a intrat pe pagina pana cand a iesit.

#13
goblenro

goblenro

    Member

  • Grup: Members
  • Posts: 973
  • Înscris: 13.06.2005

View PostCuculetzu, on Aug 27 2008, 19:54, said:

Stiti cum pot verifica cat timp a stat un user pe site? Gasisem la un moment dat un script pe net, dar nu il mai gasesc acum cand am nevoie. Vreau sa aflu timpul in minute si secunde de cand a intrat pe pagina pana cand a iesit.

Nu poti afla un timp corect decat daca operatia de iesire din site se efectueaza pe un buton sau link anume.
Poti afla cu aproximatie contorizand timpul pornind de la variabila de sesiune care deja o ai sau o initializezi la intrarea in site si timpul scurs la fiecare operatie pe care vizitatorul o face in site-ul tau.

#14
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005

View Postgoblenro, on Aug 27 2008, 21:14, said:

Nu poti afla un timp corect decat daca operatia de iesire din site se efectueaza pe un buton sau link anume.
Poti afla cu aproximatie contorizand timpul pornind de la variabila de sesiune care deja o ai sau o initializezi la intrarea in site si timpul scurs la fiecare operatie pe care vizitatorul o face in site-ul tau.

As putea initializa o sesiune care sa pastreze timpul cand userul intra pe site. Nu ma intereseaza cate minute a stat la fiecare refresh. Dupa ce termina actiunile pe pagina se trimite catre o alta pagina unde sunt afisate rezultatele. Acolo pot accesa sesiunea cu timpul cand a intrat. Dar nu stiu cum sa fac aceasta diferenta de timp pentru a putea fi afisata in minute si secunde. Am mai gasit functia strtotime ("$timp"); dar nu stiu cat ma poate ajuta. Inca nu am o rezolvare.

#15
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Intelege aceste trei cuvinte pentru inceput: HTTP este stateless.

#16
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005
Adica nu o sa pot rezolva chestia asta?

#17
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Corect. Niciodata nu vei putea sincroniza perfect si acurat clientul cu serverul.

Modelul HTTP functioneaza asa: browserul se conecteaza la server si trimite o cerere HTTP, serverul o onoreaza sau nu, conexiunea se inchide.

Salvezi undeva pe server timestamp-ul de start si la fiecare cerere generezi dinamic javascript care sa foloseasca acel numar. In javascript folosesti functia setata in setInterval pentru feedback vizual catre utilizator, insa nu exista decat impresia de "acest countdown se intampla live", caci in realitate verifici iar cand formularul este trimis daca mai este timp (caz in care generezi iar acel numar - diferenta dintre time() si acel timestamp de start salvat). Daca acel timp rezultat din diferenta este pozitiv nenul, atunci generezi iar formularul, si userul poate continua, altfel timpul a expirat.

Edited by OriginalCopy, 27 August 2008 - 21:08.


#18
Cuculetzu

Cuculetzu

    Junior Member

  • Grup: Members
  • Posts: 156
  • Înscris: 16.08.2005

View PostOriginalCopy, on Aug 27 2008, 22:03, said:

Corect. Niciodata nu vei putea sincroniza perfect si acurat clientul cu serverul.

Modelul HTTP functioneaza asa: browserul se conecteaza la server si trimite o cerere HTTP, serverul o onoreaza sau nu, conexiunea se inchide.

Salvezi undeva pe server timestamp-ul de start si la fiecare cerere generezi dinamic javascript care sa foloseasca acel numar. In javascript folosesti functia setata in setInterval pentru feedback vizual catre utilizator, insa nu exista decat impresia de "acest countdown se intampla live", caci in realitate verifici iar cand formularul este trimis daca mai este timp (caz in care generezi iar acel numar - diferenta dintre time() si acel timestamp de start salvat). Daca acel timp rezultat din diferenta este pozitiv nenul, atunci generezi iar formularul, si userul poate continua, altfel timpul a expirat.

Trebuie sa mai citesc o data postul tau ca sa inteleg exact ce spui. Am rezolvat problema, poate cu o marja de eroare de 1 secunda, dar pana acum merge ok.

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate