Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Sfat alegere parbriz

EMAG - recenzii false facute de ei?

Recomandare telefon 900-950

Nivel de trai
 Semnal bun da'... prost

De ce statiile de radio FM nu ren...

Pe unde pot sa gasesc statistici ...

Este reconditionat acest laptop?
 Prelungire fire electrice

Amintiri despre satelit si retran...

Care este cel mai bun mod de a pr...

Recomandare centrala termica apar...
 samsung Xcover 5 Nu mai vrea

Telefon de budget pentru filme 10...

Recomandare serviciu / firma recu...

La mulți ani @Piniuli!
 

nedumerire pozitie variabile (javascript)

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

#1
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Am urmatorul javascript pentru afisarea orei:
function ceas() {
   Digital=new Date()
   hours=Digital.getHours()
   minutes=Digital.getMinutes()
   seconds=Digital.getSeconds()

   if (hours<=9)
	  hours="0"+hours
   if (minutes<=9)
	  minutes="0"+minutes
   if (seconds<=9)
	  seconds="0"+seconds

   myclock="<b>"+hours+":"+minutes+":"+seconds+"</b>"
   document.getElementById("digital").innerHTML=myclock
   setTimeout("ceas()",1000);
}
ceas();


In forma de mai sus, variabilele (Digital, hours, minutes si seconds) sunt locale (pot avea var in fata sau nu); si funtictioneaza bine (se vede cum se schimba secundele)

DE CE daca scot (cu var in fata pe Digital (sau chiar pe toate), si il pun sus, inainte de function, nu mai functioneaza? Adica, ma rog, functioneaza, dar totul este static (secundele nu se mai schimba); trebuie sa dau refresh la pagina, si atunci se afiseaza din nou ora (corecta), dar tot statica?

#2
rzvanpopescu

rzvanpopescu

    Junior Member

  • Grup: Members
  • Posts: 117
  • Înscris: 21.08.2015
-setTimeout("ceas()",1000);
Instructiunea de mai sus executa functia "ceas" la fiecare 1000 de milisecunde(o secunda)
-Digital=new Date()
Instructiunea determina data curenta.
Daca o muti sus, va determina data curenta de la momentul in care incarci pagina, si desi functia "ceas" se va executa la fiecare secunda, ea va avea valoare initiala.
In forma in care ai postat codul, data curenta se determina de fiecare data cand se executa functia "ceas", si de aceea afiseaza ora corect.

O scurta documentare despre setTimeout te lamurea despre ce nu e in regula :)

Quote

In forma de mai sus, variabilele (Digital, hours, minutes si seconds) sunt locale (pot avea var in fata sau nu); si funtictioneaza bine (se vede cum se schimba secundele)
In javascript variabilele sunt locale doar daca au cuvantul cheie var in fata. Altfel sunt globale, si nu e o buna practica sa le faci globale.

#3
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Am inteles.
Multumesc.


PS. Se poate inchide!

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